- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2006-02-14 15:51
引用: |
|
まどかさんの書き込み (2006-02-14 15:42) より:
ということは結果は先の通りでよかったですかね?
|
いいえ、実はあの結果にはなりません。
MyClass、MyClass と出力されるでしょう。
引用: |
|
.NETの本を初めて読んだときに、Meは付けたときと付けないときで挙動が違うんだという
印象が残っています。
|
すいません、Me と MyClass キーワードによる、
オーバーライド時に "動作の違い" を言いたかったのだと勝手に脳内置換していました。(^-^;)
言わんとしていることを読み取ろうとしたら失敗しますた... ( ; ´-ω-`)
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- 囚人
- ぬし
- 会議室デビュー日: 2005/08/13
- 投稿数: 1019
|
投稿日時: 2006-02-14 15:55
引用: |
|
名前自体を明確に分けるという意味であれば賛成ですが、ちょっと例が悪かったのかな?
|
いえ、かなり悪かったですね^^;
実は最初 bool で書いてたんですよね。推敲してて、「あ、bool やったらどっちにしろ値入るやん(意図しない値ですが)」と思いまして。変数名はそのまんまでした。
単に「非常に長い変数名のタイプミス」という事を表現したかっただけです。
引用: |
|
名前自体を明確に分けるという意味であれば賛成ですが、ちょっと例が悪かったのかな?
この場合「newIsFloccinaucinihilipilification」というような例の方が良かったかも。
そゆことじゃない? (^-^;)
|
そゆこととです(^-^;)
_________________
囚人のジレンマな日々
[ メッセージ編集済み 編集者: 囚人 編集日時 2006-02-14 15:57 ]
|
- まどか
- ぬし
- 会議室デビュー日: 2005/09/06
- 投稿数: 372
- お住まい・勤務地: ますのすし管区
|
投稿日時: 2006-02-14 16:02
引用: |
|
MyClass、MyClass と出力されるでしょう。
|
ですよね。。。
であれば、単なる明示ですね。
#例に出したような結果になることがあったような気がしてならなかったのでした。
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2006-02-14 16:18
引用: |
|
まどかさんの書き込み (2006-02-14 16:02) より:
#例に出したような結果になることがあったような気がしてならなかったのでした。
|
先に私が書いたオーバーライド時の Me と MyClass との違いの件と間違われていませんか?
わかりやすくするために、まどかさんのソースを流用して書かせて頂きます。
クラス名を変えた理由は [MyClass] と書くとわかりにくいからです。(^^)
コード: |
|
Public Class BaseClass
Public Overridable ReadOnly Property Prop1() As String
Get
Return "BaseClass"
End Get
End Property
Public Sub Test()
MessageBox.Show(Me.Prop1())
MessageBox.Show(MyClass.Prop1())
End Sub
End Class
Public Class ExtendsClass : Inherits BaseClass
Public Overrides Readonly Property Prop1() As String
Get
Return "ExtendsClass"
End Get
End Property
End Class
Public Class Form1 : Inherits System.Windows.Forms.Form
Private Sub Button1_Click(...) Handles Button1.Click
Dim NewClass As BaseClass
NewClass = New ExtendsClass()
NewClass.Test()
End Sub
End Class
|
この場合、Button1 の Click イベントでの結果は、
「ExtendsClass / BaseClass」となります。(^^)
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- まいるどきゃっと
- 大ベテラン
- 会議室デビュー日: 2004/08/12
- 投稿数: 135
- お住まい・勤務地: 群馬
|
投稿日時: 2006-02-14 16:24
引用: |
|
未記入さんの書き込み (2006-02-14 15:19) より:
引用: |
| 次のような事があるからメンバ変数は何かつけますね。上記は非常に分かりづらいバグにです。
|
なにがメリットなのか良くわかりませんでした。Visual Studio 2005 だと何か警告してくれるのでしょうか?
|
囚人さんもおっしゃってますが、目で見てすぐ分るってことですね。
ツールの話ではないと思います。
引用: |
|
ちなみに、Eclipse で上記 3パターンのコードを Java で書いたら、すべてのケースで正しく代入が行われないことを警告してくれました。
|
おー、それは知りませんでしたφ(.. ) memo
|
- R・田中一郎
- ぬし
- 会議室デビュー日: 2005/11/03
- 投稿数: 979
|
投稿日時: 2006-02-14 16:39
引用: |
|
まいるどきゃっとさんの書き込み (2006-02-14 14:14) より:
# じつはこの間、ボケてこんな感じの失敗しちゃいました。
# 何故かメンバのプリフィックスと引数のプリフィックスよく間違えちゃうんです
コード: |
|
class Foo {
private string _bar;
public Foo(string _bar) {
_bar = _bar;
}
}
|
|
これは僕も良くやります。なので引数の命名を皆さんがどうしているのかが知り
たくなったのでした。
引用: |
|
じゃんぬねっとさんの書き込み (2006-02-14 14:53) より:
R・田中一郎さんの建てるスレはコーディング標準系... _φ(。。)
|
考えてみると、その手の話題が比較的多いかも知れません。
新しい開発環境でコーディングを始めている今の状態は、新しいノートをおろすと
きれいにノートを取ろうと思いながら頁の消費に伴い汚くなっていくあの法則に
似ています。
引用: |
|
じゃんぬねっとさんの書き込み (2006-02-14 14:53) より:
"この場合の" 初期値だけに関して言えば、.NET 的には、
|
ありがとうございました。とても参考になりました。
引用: |
|
じゃんぬねっとさんの書き込み (2006-02-14 14:53) より:
はい、私は付けていません。(外部クラスに見えちゃうので)
VB の場合、インスタンス メソッドの呼び出しに関しては、
Call をつけて明示化していた時期がありましたが、今では Call すら付けていません。
中には、MyStatic みたいな名前にして、エイリアス チックに対応している人もいます。
|
静的変数や静的メンバは、後で訳が分からなくなりがちなので、あまり使わないようにし
ているのですが、何か目立つ名前にすると分かりやすいかもしれませんね。
Callは、VB6 の時には、メソッド名がわかりにくいので明示的に付けていました。
今は、() が付くので省くようになりましたが。
|
- まどか
- ぬし
- 会議室デビュー日: 2005/09/06
- 投稿数: 372
- お住まい・勤務地: ますのすし管区
|
投稿日時: 2006-02-14 16:41
引用: |
|
先に私が書いたオーバーライド時の Me と MyClass との違いの件と間違われていませんか?
「ExtendsClass / BaseClass」となります。(^^)
|
これまでのことは理解しておりますが
自身が混乱してるようです。
家に帰ってその本を読み返して見ます。
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2006-02-14 17:35
引用: |
|
R・田中一郎さんの書き込み (2006-02-14 16:39) より:
考えてみると、その手の話題が比較的多いかも知れません。
新しい開発環境でコーディングを始めている今の状態は、新しいノートをおろすと
きれいにノートを取ろうと思いながら頁の消費に伴い汚くなっていくあの法則に似ています。
|
最初に「"なるべく" 万人に好まれるクセを付ける」のは大変良いことだと思います。
引用: |
|
静的変数や静的メンバは、後で訳が分からなくなりがちなので、あまり使わないようにし
ているのですが、何か目立つ名前にすると分かりやすいかもしれませんね。
|
うーん、どうでしょう。
静的メンバって分類的にはクラスに属するが、インスタンスとは関係がない、というポイントで必要ですよね。
以前も言ったように、readonly だったり constant なメンバと同じ扱いでしょう。
引用: |
|
Callは、VB6 の時には、メソッド名がわかりにくいので明示的に付けていました。
今は、() が付くので省くようになりましたが。
|
毎回私と同じすぎて怖いですね。(^-^A)
引用: |
|
まどかさんの書き込み (2006-02-14 16:41) より:
家に帰ってその本を読み返して見ます。
|
お待ちしてます。(^^)
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|