如何将另一个结构隐式转换为我的类型?

Fre*_*ood 2 .net c# implicit variable-assignment

事实上MyClass x = 120;,是否可以创建这样的自定义类?如果是这样,我该怎么做?

SWe*_*eko 5

通常认为使用隐式运算符是一个坏主意,因为它们毕竟是隐式的并且在您背后运行。调试充满运算符重载的代码是一场噩梦。也就是说,有这样的事情:

public class Complex
{
    public int Real { get; set; }
    public int Imaginary { get; set; }

    public static implicit operator Complex(int value)
    {
        Complex x = new Complex();
        x.Real = value;
        return x;
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以使用:

Complex complex = 10;
Run Code Online (Sandbox Code Playgroud)

或者你可以重载 + 运算符

public static Complex operator +(Complex cmp, int value)
{
  Complex x = new Complex();
  x.Real = cmp.Real + value;
  x.Imaginary = cmp.Imaginary;
  return x;
 }
Run Code Online (Sandbox Code Playgroud)

并使用类似的代码

complex +=5;
Run Code Online (Sandbox Code Playgroud)