【问题标题】:Why i can not use reference variable?为什么我不能使用参考变量?
【发布时间】:2017-09-19 11:29:27
【问题描述】:
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。 从控制器我可以使用它。但是当我想从模型文件夹访问时,我无法访问它。 为什么我不能使用引用变量?

【问题讨论】:

  • 请在您的问题中输入代码而不是图像。
  • 如果您发布代码而不是屏幕截图会更好。
  • 这不是有效的 C#
  • p 是一个类级别的字段,您可以在方法或属性中使用它。
  • 您需要清除 C# 的基础知识。请参阅 Jakub Szumiato 给出的答案。他为你提供了示例代码

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


【解决方案1】:

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

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

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

  • 构造函数
  • 常量
  • 字段
  • 终结者
  • 方法
  • 属性
  • 索引器
  • 运营商
  • 活动
  • 代表
  • 接口
  • 结构

我在下面添加了一些代码来说明构造函数的用法,在 cmets 之后。

希望这可以澄清。快乐学习 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());
        }
    }
}

【讨论】:

  • 编写一些代码来说明您的意思可能会有所帮助。我怀疑提问者可能听不懂。
  • @sab669 TBH,这个答案很清楚,我认为这里需要的是一本关于C#的入门书和一些练习。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    生成编译器的错误应该已经回答了您的问题:

    错误 CS0236 - 字段初始化程序无法引用非静态字段、方法或属性“Product.[something]”

    【讨论】:

      猜你喜欢
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 2016-04-23
      • 1970-01-01
      相关资源
      最近更新 更多