- R・田中一郎
- ぬし
- 会議室デビュー日: 2005/11/03
- 投稿数: 979
|
投稿日時: 2006-02-14 09:04
未だに良くわかっていないのですが。
付けるとインスタンス経由ということらしいのですが、どのように使い分けるのが良いのですか?
コード: |
|
public class クラス
private 番号 as integer
private 名前 as string
public sub new(byval 番号初期値 as integer, byval 名前初期値 as string)
me.番号 = 番号初期値
me.名前 = 名前初期値
if (not me.番号の値は有効値()) then
throw (new ArgumentOutOfRangeException("番号値が無効です"))
end if
end sub
public function 番号の値は有効値() as boolean
return(me.番号 > 0)
end function
end class
|
僕がわかるのは、me. をつけるとインテリセンスが使えますが、コードが冗長化するという点のみです。
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2006-02-14 09:07
引用: |
|
R・田中一郎さんの書き込み (2006-02-14 09:04) より:
僕がわかるのは、me. をつけるとインテリセンスが使えますが、コードが冗長化するという点のみです。
|
コードが冗長化するのがイヤなのであれば、VB も C# も Java も使えないかも。
Me をつけることで、インスタンス メンバであることを "明示化" できます。
今操作中のメンバを使っているということで、非常に見やすいです。
# 旧 VB では Friend 以上のメンバにしか付けることができなかったので不満でした。
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- かるあ
- ぬし
- 会議室デビュー日: 2003/11/16
- 投稿数: 1190
- お住まい・勤務地: センガワ→ムサシノ
|
投稿日時: 2006-02-14 09:17
むしろ使い分けないほうが良いんじゃないでしょうか
つけるなら全部つける、つけないなら全部つけない。
|
- 囚人
- ぬし
- 会議室デビュー日: 2005/08/13
- 投稿数: 1019
|
投稿日時: 2006-02-14 09:22
引用: |
|
Me をつけることで、インスタンス メンバであることを "明示化" できます。
今操作中のメンバを使っているということで、非常に見やすいです。
|
私は逆に不必要に感じてつけるの嫌かなぁ。
VS が自動で吐くコードがバシバシ使うのが少し不満です。
コード: |
|
Public Sub New(ByVal 番号 As Integer, ByVal 名前 As String)
Me.番号 = 番号
Me.名前 = 名前
If (Not 番号の値は有効値()) Then
Throw (New ArgumentOutOfRangeException("番号値が無効です"))
End If
End Sub
|
使うとしたら、このように明らかに区別したいときですね。
引数に「〜初期値」という名前が好かないからです。
_________________ 囚人のジレンマな日々
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2006-02-14 09:41
引用: |
|
囚人さんの書き込み (2006-02-14 09:22) より:
私は逆に不必要に感じてつけるの嫌かなぁ。
VS が自動で吐くコードがバシバシ使うのが少し不満です。
|
そぅ? 囚人さんの例だと、ローカル外であることを明示化できて好きなんですが。
まあ、長いメソッドなんて組まないから関係ないかもしれないけど、青い彩も欲しいw
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- R・田中一郎
- ぬし
- 会議室デビュー日: 2005/11/03
- 投稿数: 979
|
投稿日時: 2006-02-14 10:28
引用: |
|
じゃんぬねっとさんの書き込み (2006-02-14 09:07) より:
コードが冗長化するのがイヤなのであれば、VB も C# も Java も使えないかも。
Me をつけることで、インスタンス メンバであることを "明示化" できます。
|
僕もそう思ったので、最近は me. を必ず付けるようにしていたのです。
しかし、ふと気が付くと、me. の量があまりに凄かったので、皆さんなにか使い
分けしているのだろうか?、などと思ってみたりした訳です。
ただ、確かに .net になってから1行で済むところが複数行なったりするので、
逆に読みにくくなっている気もしています。
でも、わかりやすい名前をつけると、どうしても長くなってしまうんですよね。
[/quote]
引用: |
|
かるあさんの書き込み (2006-02-14 09:17) より:
むしろ使い分けないほうが良いんじゃないでしょうか
つけるなら全部つける、つけないなら全部つけない。
|
そうですね。特に使い分けのガイドラインのようなものが無いのなら、今まで
通り全部つける方向で行こうと思います。
引用: |
|
囚人さんの書き込み (2006-02-14 09:22) より:
コード: |
|
Public Sub New(ByVal 番号 As Integer, ByVal 名前 As String)
Me.番号 = 番号
Me.名前 = 名前
If (Not 番号の値は有効値()) Then
Throw (New ArgumentOutOfRangeException("番号値が無効です"))
End If
End Sub
|
使うとしたら、このように明らかに区別したいときですね。
引数に「〜初期値」という名前が好かないからです。
|
そうですね。こんな風に書けたんですね。全く気が付きませんでした。
これから、僕も真似することにします。
皆さん、ありがとうございました。
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2006-02-14 11:31
引用: |
|
R・田中一郎さんの書き込み (2006-02-14 10:28) より:
そうですね。こんな風に書けたんですね。全く気が付きませんでした。
これから、僕も真似することにします。
|
私見です。
引数とインスタンス メンバの名前の衝突は明示化すれば問題になりませんが、
ややこしいので、私は明示的に名前をわけることにしています。
それでも Me や this キーワードをつけますけど。(全部)
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- 囚人
- ぬし
- 会議室デビュー日: 2005/08/13
- 投稿数: 1019
|
投稿日時: 2006-02-14 11:42
引用: |
|
そうですね。こんな風に書けたんですね。全く気が付きませんでした。
これから、僕も真似することにします。
|
引用: |
|
私見です。
引数とインスタンス メンバの名前の衝突は明示化すれば問題になりませんが、
ややこしいので、私は明示的に名前をわけることにしています。
|
真似しないでぇ。私も名前を分ける方を推奨します。
さっきのは「Me、thisを使うとしたら」というただの例です^^;
コード: |
|
public class クラス
private 番号 as integer
private 各前 as string
public sub new(byval 番号 as integer, byval 名前 as string)
me.番号 = 番号
me.各前 = 各前
if (not 番号の値は有効値()) then
throw (new ArgumentOutOfRangeException("番号値が無効です"))
end if
end sub
public function 番号の値は有効値() as boolean
return(番号 > 0)
end function
end class
|
コード: |
|
public class クラス
private _番号 as integer
private _名前 as string
public sub new(byval 番号 as integer, byval 名前 as string)
_番号 = 番号
_名前 = 名前
if (not 番号の値は有効値()) then
throw (new ArgumentOutOfRangeException("番号値が無効です"))
end if
end sub
public function 番号の値は有効値() as boolean
return(_番号 > 0)
end function
end class
|
上の方のクラスはバグってるんですが一目でわかり難い。タイプミスは誰でもしますからね^^;
_________________ 囚人のジレンマな日々
|