在里面NET,在实现隐式转换运算符时,是否可以访问被分配给的对象
本文关键字:访问 对象 是否 分配 实现 NET 运算符 转换 在里面 | 更新日期: 2023-09-27 17:57:29
例如,如果我有一个对象,例如:
public class MyObject
{
public MyObject(int initialValue)
{
this.InitialValue = initialValue;
this.CurrentValue = initialValue;
}
public int InitialValue { get; set; }
public int CurrentValue { get; set; }
public static implicit operator MyObject(int someValue)
{
MyObject result = new MyObject(someValue);
return result;
}
}
在隐式强制转换中,如果有初始值并且只更新当前值,是否可以保留初始值?
我们的想法是这样做:
MyObject test = 4; // Both InitialValue and CurrentValue are now 4.
test = 5; // InitialValue is 4 but CurrentValue is now 5.
这是一个很长的机会,我认为这是不可能的,但如果有人有任何出色的想法来实现这一点,我将不胜感激
谢谢!
您可以在不进行任何赋值的情况下进行强制转换。其中一个例子是在调用函数时:
void SomeFunction(MyObject passedValue) { /* ... */ }
可以通过您的隐式演员阵容调用,如下所示:
SomeFunction(5);
而且从来没有任何任务发生过。
即使发生了赋值,也要记住,您赋值给变量,而不是对象。从某种意义上说,在这种情况下,您所要求的对象实际上是result
变量。