VBのスコープわがんね でちょっと思ったんだけどぉ
public static void Main() {
int[] data = new int[] { 1, 2, 3, 4, 5};
foreach ( int item in data ) { // ココと
Console.WriteLine(item);
}
int item; // ココでカブる
}
C#だと後発の int item でエラーとなります。
ローカルの変数 'item'をこのスコープで宣言することはできません。
これは、'子'スコープで別の意味を持つ 'item' の意味が変更されるのを
避けるためです。
VBよか親切な希ガス。
でね、こいつをエラーとするほどにあいまいさを回避したいのならば
class Foo {
private int item;
public void set(int item) {
なぜにコレをエラーとしないのですか!
スコープもろカブりやないですか!
}
}
Public Class Foo
Private item As Integer
Public Sub SetItem(ByVal item As Integer)
VBも同罪!
End Sub
End Class
納得のいく説明を求ム。> .Netなひと