在 C# 中检查方法调用方的字段

本文关键字:字段 调用 方法 检查 | 更新日期: 2023-09-27 18:33:33

class Dog
{
 public void Bark()
  {
    Console.WriteLine("<Name_Of_Dog> just barked!")
  }
}

static void Main()
{
  Dog Spike=new Dog();
  Dog Mike=new Dog();
  Spike.Bark();
}

现在我希望控制台输出是:"斯派克刚刚吠叫!我该怎么做?

在 C# 中检查方法调用方的字段

请改用属性或字段:

class Dog
{
   string Name
   public void Bark()
   {
     Console.WriteLine("{0} just barked!", Name)
   }
   public Dog(string name)
   {
     this.Name=name;
   }
}
static void Main()
{
  Dog Spike=new Dog("Spike");
  Dog Mike=new Dog("Mike");
  Spike.Bark();
}

变量的名称由开发人员使用。它用于沟通,揭示这个变量存在的原因,它的作用以及如何使用它。业务逻辑应该与变量名完全无关。

在这种情况下:object potato = new Object(),并不是因为我将对象命名为马铃薯,它才自动成为一个。在您的示例中,使用这样的狗名称仅向开发人员指示此 Dog 实例名为 Spike,而不是它表示的实际对象是名为 Spike 的狗。

您需要通过propertiesfields定义对象的特征。对于您的情况,您需要一个名为"名称"的字段。为什么不是房产?因为物体就像间谍,他们想让一切都对全世界隐藏起来。由于您没有在应用程序的其他位置使用该名称,因此请在类级别限制范围:

class Dog
{
    private readonly string name;
    public Dog(string name)
    {
        this.name = name;
    }
    public void Bark()
    {
        Console.WriteLine("{0} just barked!", name);
    }
}

而主要的:

Dog Spike = new Dog("Spike");

使用属性,它看起来像这样:

class Dog
{
    public string Name { get; set; }
    public void Bark()
    {
        Console.WriteLine("{0} just barked!", Name);
    }
}

而主要变成:

Dog Spike = new Dog { Name = "Spike" };