控制台未写入类对象名称

问题描述

Visual Studio 中的 C#...非常简单的 main 和 class 方法。运行时,我的程序只读出“嗨朋友”,而不是“奥蒂斯”。对正在发生的事情有什么想法吗?

using System;

namespace Project
{
    class Program
    {
        static void Main(string[] args)
        {       
            Console.WriteLine("Hi friend");        
            Cow myCow = new Cow("Otis");
            Console.WriteLine(myCow.Name);
        }
    }
    
    class Cow
    {
        public string Name { get; set; }
        public Cow(string name)
        {
            name = Name;
        }   
    }
}

解决方法

您在构造函数中的赋值颠倒了 - 您将(空)成员 Name 分配给参数 name,而不是相反:

class Cow
{
    public string Name { get; set; }
    public Cow(string name)
    {
        Name = name;
    }   
}

注意 - 使用 this 会使其更明确,更容易发现此类错误:

class Cow
{
    public string Name { get; set; }
    public Cow(string name)
    {
        this.Name = name;
    }   
}
,

您切换了构造函数参数分配。应该是这样的:

Name = name;