清洁财产声明

时间:2011-12-20 23:45:19

标签: c# language-design syntactic-sugar

我正在研究一些代码,用于将Silverlight视图绑定到MVP模式中的演示者。在这种特殊情况下,这是一次非常长的练习:

型号:

public bool MyBoolean
{
    get { return _myThingy.MyBoolean; }
    set { _myThingy.MyBoolean = value; }
}

主讲人:

public bool MyBoolean
{
    get { return _model.MyBoolean; }
    set { _model.MyBoolean = value; }
}

显然,在这个例子中,演示者可以被废除,但是在这种情况下有一些东西值得同时使用,因为每个属性都不是像这样,我们的编码标准要求为每个窗口/页面/用户控件设置Model,View和Presenter。

我真正的问题是,我真的希望能够做到这样的事情:

型号:

public bool MyBoolean -> _myThingy.MyBoolean;

主讲人:

public bool MyBoolean -> _model.MyBoolean;

其中->是“绑定属性运算符”或一些类似的名称 - 基本上是第一位代码的语法糖。有没有这样的东西?如果没有,是否有更清洁的方式来做我正在做的事情?

1 个答案:

答案 0 :(得分:5)

  

有没有这样的东西?如果没有,是否有更清洁的方式来做我正在做的事情?

没有。在代码方面,你所拥有的可能是最好的选择。 C#在任何功能中都不提供此类功能。

但是,您可以使用工具来简化这一过程。例如,Resharper模板可以很容易地创建其中一个非常快。第二个可以变成一个模板,只需要输入类似的东西(假设“ptprop”作为关键字):

ptprop{TAB}bool{TAB}MyBoolean{Tab}_model{Enter}

这会简化您的开发工作,尽管代码是相同的......

相关问题