静态类自引用
本文关键字:自引用 静态类 | 更新日期: 2023-09-27 18:30:53
我正在尝试创建一个基本的Foo类,并希望复制颜色的工作方式,但是我无法理解它。 例如,我想获得此功能...
Color color = Color.Red;
为我的福,并写
Foo x = Foo.y;
在相关的说明中,如果我理解正确的话,
string s = "...";
与
string s = new string("...".ToCharArray())
我的问题是,我能否定义类似行为和行为的类型,以便我可以拥有类似的东西
Bar w = 1
; 与Bar w = new Bar(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;
会工作...但我会三思而后行。隐式转换通常会通过隐藏行为来损害代码的可读性。