首页 > 解决方案 > 让类返回一个字段

问题描述

有没有办法让一个类默认返回它的一个字段,如下所示:

public class TestClass
{
    public string something;
}

TestClass test = new TestClass();
test = "alpha"; // "alpha" string is assigned to "something"
Console.Write(test); // test returns "alpha" string from "something"

如何使这项工作?

标签: c#class

解决方案


对于所有那些说这是不可能的人,)

public class TestClass
{
    public string something;

    public static implicit operator TestClass(string s) => new TestClass { something = s};

    public static implicit operator string(TestClass testClass) => testClass.something;
}

用法:

TestClass test = new TestClass();
test = "alpha";
Console.WriteLine(test);

给出:

alpha

注意:由于隐式转换,Console.WriteLine需要testasstring和调用重载。Console.WriteLine(string value)


推荐阅读