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此外,可变静态字段不仅是糟糕的代码味道,它们还可能是并发性的噩梦。我建议尽可能避免使用它们。你能举个例子说明为什么应该避免使用可变静态字段吗?也许有联系。谢谢这里有一个问题可以讨论:。更多信息和