C#中静态成员的别名?
我有一个静态成员:C#中静态成员的别名?,c#,alias,static-members,C#,Alias,Static Members,我有一个静态成员: namespace MyLibrary { public static class MyClass { public static string MyMember; } } 我想这样访问: using MyLibrary; namespace MyApp { class Program { static void Main(string[] args) { My
namespace MyLibrary
{
public static class MyClass
{
public static string MyMember;
}
}
我想这样访问:
using MyLibrary;
namespace MyApp
{
class Program
{
static void Main(string[] args)
{
MyMember = "Some value.";
}
}
}
如何仅通过使用MyLibrary添加,MyMember
(无MyClass.
)就可以访问MyApp
?C>不允许创建成员的别名,只允许创建类型的别名。因此,在C#中执行类似操作的唯一方法是创建一个可从该范围访问的新属性:
class Program
{
static string MyMember
{
get { return MyClass.MyMember; }
set { MyClass.MyMember = value; }
}
static void Main(string[] args)
{
MyMember = "Some value.";
}
}
它不是一个真正的别名,但它完成了您要查找的语法
当然,如果您只是在MyClass
上访问/修改一个成员,而不是分配给它,这可以简化一点:
class Program
{
static List<string> MyList = MyClass.MyList;
static void Main(string[] args)
{
MyList.Add("Some value.");
}
}
类程序
{
静态列表MyList=MyClass.MyList;
静态void Main(字符串[]参数)
{
添加(“一些值”);
}
}
+1以获取有效的解决方案。这种方法唯一的问题是,我必须为每个类创建成员才能访问静态成员。@dpp正确,这就是为什么这会很痛苦的原因。最好还是坚持使用传统的MyClass.MyMember=“Some value。”
@dpp此外,可变静态字段不仅是糟糕的代码味道,它们还可能是并发性的噩梦。我建议尽可能避免使用它们。你能举个例子说明为什么应该避免使用可变静态字段吗?也许有联系。谢谢这里有一个问题可以讨论:。更多信息和