C#中,字段和方法参数名称和类型一样,这样写不冲突吗?

C#中,字段和方法参数名称和类型一样,这样写不冲突吗?

private string username;

public void setUsername(string username)

这2处的username系统是怎样区分出来的?

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            User user = new User();
            user.setUsername("jack");
            Console.WriteLine(user.getUsername());
        }
    }

    class User
    {
        private string username;

        public string getUsername()
        {
            return username;
        }
        public void setUsername(string username)
        {
            this.username = username;
        }
    }
}

我试过,能正常运行,输出结果

jack

阅读 4.5k
1 个回答

这明显是用java风格在写C#的代码。
C#请用下面的代码:

public class User
{
    public string UserName { get; set; }
}

至于你提到的问题,在setUsername方法中,不是有this.username吗?this前缀的作用就是指定username使用字段。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进