1
11
你不能用C#做这个。 这个特性是VB特有的,在C中最接近的就是你描述的对象初始化器。 |
2
6
这个怎么样?
|
3
3
如果您试图避免大量键入,可以为对象指定一个较短的名称:
|
4
3
|
5
1
为了向后兼容,VB.NET包含了VB6的一些设计缺陷。尽管Javascript也有同样的设计缺陷(事实上更糟的是
|
6
1
@Mark Byers answer
很好,但是变量
试试这个( 对象必须是此示例中的引用类型 ) :
|
7
0
如果“with”表达式是类类型,“with”语句相当于创建该类型的新临时变量,初始化为“with”表达式,并在每个前导“.”之前加上该变量。然而,如果它是一种结构类型,事情就更复杂了。考虑一下代码(显然不是人们通常写东西的方式,而是为了表明一点: With MyPoints(N) ' Array of Point N=SomeNewValue .X = MyPoints(N).X .Y = MyPoints(N).Y End With “With”语句有效地锁定对MyPoints(N)的引用。即使MyPoints被更改为其他数组,或者N被更改,锁存引用仍将指向同一数组的同一元素,就像执行With语句时一样。如果一个声明了Point类型的局部变量P并获取MyPoints(N),然后写入P.X和P.Y,则写入操作只会命中本地副本P,而不是更新数组。要在C#中实现类似的语义,必须使用局部变量来保存MyPoints和N,或者将With语句的内容放在一个匿名函数中,该函数具有类型Point的ref参数。为了避免在运行时创建闭包,匿名函数还应该(可能是通过引用)从外部作用域接受它需要的任何局部变量。 |
eto · WITH子句中未定义变量 7 年前 |
msoftrain · R: 在with()函数中应用()函数 8 年前 |
kuzzooroo · 捕获Python调用代码中__enter__中的异常 10 年前 |
guettli · 如果您一次读取整个文件,是否需要语句? 11 年前 |
LLL · 删除具有外部约束的行,而不使用“级联” 11 年前 |
GP89 · 为什么__getattr__不能与__exit__一起工作? 12 年前 |
tauran · 带有C语言语句的Python++ 12 年前 |