由于this.name
不工作与像静态类方法参数相同的名称来访问领域,我正在寻找一种方式来做到这一点。C#静态类领域和参数同名
作为一个例子我想这样做:
static class test
{
private static string aString;
public static void method(string aString)
{
// aString (field) = aString (parameter)
}
}
由于this.name
不工作与像静态类方法参数相同的名称来访问领域,我正在寻找一种方式来做到这一点。C#静态类领域和参数同名
作为一个例子我想这样做:
static class test
{
private static string aString;
public static void method(string aString)
{
// aString (field) = aString (parameter)
}
}
使用:
test.Astring = x;
即替换此与类名,测试在这种情况下。
非常感谢! –
*将参数重命名为'aString'更好。否则,下一个问题将是“为什么我不能修改我的静态字段?” –
@PanagiotisKanavos我同意 – Henningsson
static class test
{
private static string Astring="static";
public static void method(string Astring)
{
string passedString = Astring; // will be the passed value
string staticField = test.Astring; // will be static
}
}
如果我们调用像test.method("Parameter");
的staticField
将具有值static
和passedString
的值将Parameter
的方法。
关键字
this
表示该类的当前实例;静态 领域无法通过实例来访问你要访问的静态字段,而不是使用类 名。
注意: - 但请保重,而naming the variables。避免在同一班上给同一个名字。如果你像下面这样定义类,最好:
static class test
{
private static string StaticAstring="static";
public static void method(string passedAstring)
{
string staticField = StaticAstring; // will be static
string passedString = passedAstring; // will be the passed value
}
}
此刻你已经命名了你的局部变量。 –
@JonSkeet:谢谢你提及,我纠正了 –
更好的选择是将*参数*重命名为'astring'。约定是参数以小写字母开头 –