首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于C#设置属性无效的有关问题

2013-04-22 
关于C#设置属性无效的问题using Systemusing System.Collections.Genericusing System.Linqusing Syste

关于C#设置属性无效的问题
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Person shiyan = new Person("张老师");
            shiyan.ShowInfo();
            Console.WriteLine(shiyan.Name);
            shiyan.Name = "张老师变李老师";
            Console.WriteLine(shiyan.Name);
            Console.Read();
        }
    }
    public class Person
    {
        protected string name;
        public string Name
        {
            get { return name; }
            set { name = Name; }
        }
        public Person(string name)
        {
            this.name = name;
        }
        public virtual void ShowInfo()
        {
            Console.WriteLine(string.Format("姓名:{0}", name));
            Console.WriteLine();
        }
    }
}


这段代码,定义了一个属性Name,是可读、可写
但是在主函数里设置了shiyan.Name = "张老师变李老师";
但是输出来的还是“张老师”,请问这是什么原因? C# 属性
[解决办法]
写错了。应该是 


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

[解决办法]
是啊,你set写错了。我还真看了好一会才看出来~~你选中字段,右击重构--封装字段 就不会出错了。。。。

热点排行