反正我怎么编译都是错。这究竟是什么写法?是不是缺了啥?

解决方案 »

  1.   

    public overide PasswordConfigValue DefaultValue {get;}
     PasswordConfigValue passwordConfigValue=new PasswordConfigValue();
    passwordConfigValue.DefaultPassword="123456";
    DefaultValue=passwordConfigValue;这么分开来写,明白了吗?
      

  2.   

    这是 c#6.0的新语法。
    可以在属性后面直接赋值。
    vs2015及以上可以
      

  3.   

    已经override了  就不能再进行赋值了,而且这还是个只读的属性。get 方法里应该返回 基类中的对象。
      

  4.   

    那就不清楚了,因为我也没用c#6.0的语法。
    可能想duanzi_peng说的 override后,不能在属性赋值了?
      

  5.   

    现在的团队用TFS,我这里只有VS2013能用上TFS,但2013没有C6.0及以上。有VS2017,但VS2017又木有TFS。
    陨石坑。
      

  6.   

    不是 new xxx(){yy="123"};吗?
      

  7.   

    这是新语法吗? 怎么GET 还能 赋值?
      

  8.   

    这怎么就是奇葩语法了呢……
    我代码里到处都是这样的写法……
    上面也说了  C# 6.0开始才支持的语法
    属性可以赋初始值,后面那个new XXX更不用说了吧,这个是3.5开始支持的语法糖,初始化并按属性赋值……
      

  9.   

    写成这样就不奇怪了吧?
    private PasswordConfigValue defaultValue = new PasswordConfigValue() { DefaultPassword="123456" };
    public overide PasswordConfigValue DefaultValue {get { return defaultValue; } }
      

  10.   

    C# 6.0的语法,不算“奇葩”,因为vb 2013就支持属性默认值了。
      

  11.   

    c# 这是要改成C++节奏。奇葩语法一堆。vs2008之后再无更新。后面的更新可以无视。