在里面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.

这是一个很长的机会,我认为这是不可能的,但如果有人有任何出色的想法来实现这一点,我将不胜感激

谢谢!

在里面NET,在实现隐式转换运算符时,是否可以访问被分配给的对象

您可以在不进行任何赋值的情况下进行强制转换。其中一个例子是在调用函数时:

void SomeFunction(MyObject passedValue) { /* ... */ }

可以通过您的隐式演员阵容调用,如下所示:

SomeFunction(5);

而且从来没有任何任务发生过。

即使发生了赋值,也要记住,您赋值给变量,而不是对象。从某种意义上说,在这种情况下,您所要求的对象实际上是result变量。