如何在名称空间中直接定义数据类型



我要找出您是否可以在下面有类似的东西:

namespace myNamespace
{
    public string myString;
}

我找不到任何解释这一点的东西,这可能是因为我的搜索关键字很糟糕。谁能告诉我是否有办法这样做?

如果此,我可能已经愚弄了一些东西。无论哪种方式,我都想知道。

我想知道如何做到这一点,因为我想在整个姓名空间中访问此操作,而不必去做任何事情。这在我眼中似乎是合乎逻辑的,但显然是不可能的。

您无法在namespace中直接声明字段

    // doesn't compile
    namespace myNamespace
    {
        public string myString; // <- syntax error
    }

但是您可以在using static(C#6.0 )的帮助下模仿这样的语法:

    namespace MyLibrary 
    {
        // put myString within a static class
        public static class MyStorage 
        {
            // let turn field into property
            public static string myString {get; set;}
        }
    }

然后使用 using static的静态类:

    // please, notice "using static"
    using static MyLibrary.MyStorage;
    namespace myNamespace
    {
        public class MyClass 
        {
            public void MyMethod() 
            {
                myString = "abc"; // as if it has been declared in the namespace
                string test = myString;  
                ...
            }
        } 
    }

最新更新