アカウント名:
パスワード:
2005 年あたりから ReSharper という Visual Studio というアドインを利用しています。ReSharper のデフォルト設定は _ 付きだったので、それが普通なんだと思って、そのときから _ 付きに変えてます。
> 本家のC#においては、プレフィックスを付けずに this. で参照する文化があり
ASP.NET Core のフレームワークのソースコードも _ 付きなので、_ 付けないほうが少数派だと思っていました。
個人的には統一されていて、コードチェッカーでちゃんと検査してくれるならどっちでもいいんじゃないかと思いますが。
自分の観測範囲だと、Microsoft の名前付け規約無視している人たち (そもそも知らない) が多いので、混乱なんか起きないんじゃないかなあと思います。
thisで参照する文化というよりもVisualStudioのエディタでthis.と入力するとインテリセンスでフィールド/プロパティ/メソッド/イベント各種が候補に出るので判り易いからだと思うけど。だからthis.と手癖で入力する。
あと、変数とフィールドを同じ名前にしてしまってバグる可能性が減らせる。
むしろ、thisを付けると変数とフィールドを同じ名前にできて楽だと考えて使ってた。
public Dog(string name) { this.name = name; }
こういう所でnameを受け取るためだけに毎度適切な名前を考えるのが邪魔くさい。考えなくて済むようにしよう、とすると、悪名高いプレフィックスが出てくる。
public Dog(string name) { mName = name; }
あるいは、
public Dog(string _name) { name = _name; }
か
public Dog(string name) { _name = name; }
このパターンはクラスの属性とクラスが属するスコープで変数名が被ってるだけだから同じ名前を使えるのでは?
つかえるし、使わないと名前考えるのめんどくさいから、thisつかって同じ名前でやってますって話だと思うぞ。
使わなくても違う名前を考える必要などないという話だが。
どこに対してツッコミを入れてるのかわからなかったが、(this を)使わなくても というつっこみなら、
は this は使わないとだめ。クラスの属性といっているので、暗黙に name フィールドは存在する。
(これ以外のサンプルは、thisを使わないとめんどくさくなるという話なので関係ない。)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
_ 付きが普通だと思ってました... (スコア:1)
2005 年あたりから ReSharper という Visual Studio というアドインを利用しています。ReSharper のデフォルト設定は _ 付きだったので、それが普通なんだと思って、そのときから _ 付きに変えてます。
> 本家のC#においては、プレフィックスを付けずに this. で参照する文化があり
ASP.NET Core のフレームワークのソースコードも _ 付きなので、_ 付けないほうが少数派だと思っていました。
個人的には統一されていて、コードチェッカーでちゃんと検査してくれるならどっちでもいいんじゃないかと思いますが。
自分の観測範囲だと、Microsoft の名前付け規約無視している人たち (そもそも知らない) が多いので、混乱なんか起きないんじゃないかなあと思います。
Re: (スコア:1)
thisで参照する文化というよりもVisualStudioのエディタでthis.と入力するとインテリセンスでフィールド/プロパティ/メソッド/イベント各種が候補に出るので判り易いからだと思うけど。だからthis.と手癖で入力する。
あと、変数とフィールドを同じ名前にしてしまってバグる可能性が減らせる。
Re: (スコア:0)
むしろ、thisを付けると変数とフィールドを同じ名前にできて楽だと考えて使ってた。
public Dog(string name) { this.name = name; }
こういう所でnameを受け取るためだけに毎度適切な名前を考えるのが邪魔くさい。
考えなくて済むようにしよう、とすると、悪名高いプレフィックスが出てくる。
public Dog(string name) { mName = name; }
あるいは、
public Dog(string _name) { name = _name; }
か
public Dog(string name) { _name = name; }
Re: (スコア:0)
このパターンはクラスの属性とクラスが属するスコープで変数名が被ってるだけだから同じ名前を使えるのでは?
Re: (スコア:0)
つかえるし、使わないと名前考えるのめんどくさいから、thisつかって同じ名前でやってますって話だと思うぞ。
Re: (スコア:0)
使わなくても違う名前を考える必要などないという話だが。
Re:_ 付きが普通だと思ってました... (スコア:0)
どこに対してツッコミを入れてるのかわからなかったが、
(this を)使わなくても というつっこみなら、
public Dog(string name) { this.name = name; }
は this は使わないとだめ。
クラスの属性といっているので、暗黙に name フィールドは存在する。
(これ以外のサンプルは、thisを使わないとめんどくさくなるという話なので関係ない。)