我正在尝试创建一个基本的Foo类,并希望复制Color的工作方式,但是我无法理解它。例如,我想获得这个功能......
Color color = Color.Red;
为我的Foo,并写
Foo x = Foo.y;
在相关的说明中,如果我理解正确的话,
string s = "...";
与
相同string s = new string("...".ToCharArray())
我的问题是,我可以定义行为和行为类似的类型,以便我可以拥有类似
的类型 Bar w = 1
;这与Bar w = new Bar(1)
相同;
答案 0 :(得分:1)
对于问题的第一部分,听起来你只想要静态字段或属性,例如
public class Foo
{
// A field...
public static readonly Foo MyFunkyFooField = new Foo(...);
// A property - which could return a field, or create a new instance
// each time.
public static Foo MyFunkyFooProperty { get { return ...; } }
}
对于第二部分,使用字符串文字是而不是,就像调用new string(...)
一样,因为它每次都重用相同的字符串引用。你不能轻易想出自己的行为。
您可以创建从int
到Bar
的自定义隐式转化,以便
Bar x = 1;
会奏效......但我会这么做三思。隐式转换通常会通过隐藏行为来破坏代码的可读性。