【问题标题】:Access to a defined property from static function从静态函数访问定义的属性
【发布时间】:2019-05-02 15:15:40
【问题描述】:

我想在一个静态类中定义一个属性,然后从另一个静态类访问这个属性。为此,我定义了这样一个属性:

public static class First
{
    public static void Run(string name)
      {
         xzFileName=name
         //my code here
       }
    public static string xzFileName
      {
         get
          {
            return xzFileName;
          }
         set
          {
            xzFileName=value;
          }   
       }
}

但是我在这一行遇到了一个例外xzFileName=value。谁能告诉我我的代码有什么问题?

【问题讨论】:

    标签: c# static-functions


    【解决方案1】:

    你有一个循环引用。您试图从属性的设置器中设置属性,这会导致无限循环。

    将其更改为使用自动实现的属性:

    public static class First
    {
        public static void Run(string name)
          {
             xzFileName=name;
             //my code here
           }
        public static string xzFileName { get; set;  }
    }
    

    【讨论】:

      【解决方案2】:

      默认行为 -静态类只能有静态成员。静态类不能有任何实例,如果有的话,你不能访问非静态成员。

      public static class First
        {
          public void Run(string name) => xzFileName = name;
          public string xzFileName { get; set; }             
         }
      

      【讨论】:

        猜你喜欢
        • 2018-04-18
        • 2013-02-13
        • 1970-01-01
        • 2018-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多