我想让类的成员在类或类的继承者可以修改,实例调用时不能修改,即只想在构造函数中修改其值。下面这三种方法都不理想:
        public readonly string _member1 = "sdaf";
        public string Member { get; }
        public string Member1 { get { return _member1; } }

解决方案 »

  1.   

    这种怎么不理想了?
    public string Member1 { get { return _member1; } }
      

  2.   

    public abstract class Parent
    {
        private readonly string s;
        protected Parent(string s)
        {
            this.s = s;
        }
    }public class Child : Parent
    {
        public Child(string s) : base(s)
        {
        }
    }
      

  3.   


            private string _member;
            private string _member1 = "sdaf";
            public string Member { get { return _member; } }
            public string Member1 { get { return _member1; } }
    _member和_member1声明成private,不需要声明称readonly,
      

  4.   

    哦不好意思,没说清楚:不想加个私有成员,只想用一个[公共成员]或[属性]来实现。比如类似:public in_this_readwrite string Prop1 { get; }
    这样的目的就是可以省去“private string _member;”这行代码,用一行搞定。
      

  5.   


    因为这样做还要定义 private string _member1;,即要用两行来实现。
    像我这平[烦]的人觉得这样太麻[凡]了。
      

  6.   

    还是加private的吧,否则就用 readonly
      

  7.   

    对外只读,对子类可写,只能那么写private string _strMember = string.Empty;
    public string Member
    {
        public get{ return _strMember;}
        protected set {_strMember = value;}
    }
      

  8.   

    对于这种写法:public readonly string Prop1;
    刚看到一个这样的好消息:“错误 1 无法对只读的字段赋值(构造函数或变量初始值指定项中除外)”
    即在构造函数中可以对其付值,而我正是要在构造函数中初始化其值。
    当然又有另一个问题,我的构造函数由于参数不一样,可能不只一个构造函数,
    付值的代码要重复放在每个构造函数中,不能提取到一个 private void InitProps() 过程中。
      

  9.   

    你可以先附一个初始值,在不需要更改这个值的构造函数中就不用给它传值了
    例如 public class Read
        { 
        public readonly int num = 10;
        public Read(int num)
        {
            this.num = num;
        }
        public Read()
        { 
        
        }不知道你为什么要拼命减少代码量,并不是代码量越少越好的
      

  10.   

    @楼上,“不知道你为什么要拼命减少代码量,并不是代码量越少越好的”这句话确实说到我心kan3里面了,做了八年多的软件,目前还是一个Coding。
    由于挑三拣四,总是做些修改维护方面的工作,或者就是写些小系统。
    想写个大点的系统,每次写到一个阶段又重头开始写,从五六年前开始想写一套管理软件到现在是名副其实地屡。感叹ing...