为什么我不能使用引用变量?

时间:2017-09-19 11:29:27

标签: c# asp.net asp.net-mvc

namespace LanguageFeatures.Models
{
   public class Product
   {
       private string name;

       public string Name
       {
           get { return name; }
           set { name = value; }
       }

        //public int Test { get; set; }
   }

    //class TestProperty
    //{
    //    Product p = new Product{Name = "asd"};
    //    p.

    //}
}
第15行

我不能用p。 从控制器我可以使用它。但是,当我想从模型文件夹访问时,我无法访问它。 为什么我不能使用引用变量?

3 个答案:

答案 0 :(得分:11)

您正在尝试在类中编写执行代码。 请在方法或任何其他执行代码块中关闭它,它就可以了。

关注此文:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/class

一个类可以包含以下成员的声明:

  • 构造函数
  • 常数
  • Fields
  • 终结者
  • 方法
  • 属性
  • Indexers
  • 运营商
  • 活动
  • 代表
  • 课程
  • 接口
  • 的Structs

我在下面添加了一些代码来说明构造函数的用法,遵循注释。

希望这澄清一下。快乐学习c#!

using System;

namespace LanguageFeatures.Models
{
    public class Product
    {
        //field
        private string name;

        //property
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public int Test { get; set; }

    }
    public class TestProperty
    {
        //constructor
        public TestProperty()
        {
            Product p = new Product { Name = "asd", Test = 1 };
            Console.WriteLine(p.Test.ToString());
        }
    }
}

答案 1 :(得分:4)

您可以使用它,但不能直接在类中使用,而是在方法体

中使用
public class TestProperty
{
  public void TestMethod()
  {
     Product p = new Product {Name = "asd"};
     Console.WriteLine(p.Name);
  }
}

答案 2 :(得分:0)

产生编译器的错误已经回答了你的问题:

  

错误CS0236 - 字段初始值设定项无法引用非静态字段,方法或属性'产品。[某事]'