【问题标题】:Change block scope to an object to save on writing the object's name将块范围更改为对象以节省写入对象名称
【发布时间】:2020-05-13 14:20:07
【问题描述】:

有没有办法在对象范围内调用成员? 例如,而不是这个:

myObject.Foo();
myObject.value = 0;

在 myObject 范围内调用:

myObject.
{
    Foo();
    value = 0;
}

这只会像隐式类型var 那样节省打字时间。这似乎是可能的,因为在编译时它就知道 myObject 是什么类型。

【问题讨论】:

  • 我真的认为任何现代 IDE 的自动完成功能都会破坏目标,而以前的 sn-p 更具可读性。而且我什至没有触及后者 sn-p 不是有效的 C# 的事实。
  • 然而,在 VB 中,您可以使用With。但问题是关于 C#,我不知道现有的等价物。

标签: c# scope inference


【解决方案1】:

不,C# 中没有这样的语法,除了在调用构造函数时,在创建对象的新实例时,您可以分配给它的公共属性。

例如:

var obj = new MyObject {
    Value1 = 0;
    Value2 = 1;
    ....
}

【讨论】:

    猜你喜欢
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 2013-06-07
    • 2020-08-22
    • 1970-01-01
    相关资源
    最近更新 更多