tur*_*yag 2 c# arrays constructor
在C#中,您可以输入:
int[] ia = new int[] { 1, 2, 3, 4 };
Run Code Online (Sandbox Code Playgroud)
它将初始化一个包含这些数字的长度为4的整数数组.
我有一张卡片,代表卡片中的卡片,我希望能够说出类似的话:
Card[] ca = new Card[] { "4S", "5C", "AH" };
Run Code Online (Sandbox Code Playgroud)
并且有一系列卡片,第一张卡片是黑桃4,然后是俱乐部中的5张,然后是心灵王牌.
我已经可以做了:
Card c = new Card("4S");
Run Code Online (Sandbox Code Playgroud)
并有一张卡代表黑桃4.
这种构造函数类型是否可行?如果可能的话,我将如何创建它?
PS:我知道我可以去:
Card[] ca = Cards.Parse("4S 5C AH");
Run Code Online (Sandbox Code Playgroud)
或者像这样的蹩脚,但我希望我可以避免这种情况,并使用更漂亮的语法.
既然我把这一切都输了出来,我觉得有点羞怯.我现在是"那个人"...... #Guilty
通常的方式:
var ca = new Card[] { new Card( "4S" ), new Card( "5C" ), new Card( "AH" ) };
Run Code Online (Sandbox Code Playgroud)
明确的演员:
class Card
{
...
public static explicit operator Card( string s )
{
return new Card( s );
}
...
}
var ca = new Card[] { (Card)"4S", (Card)"5C", (Card)"AH" };
Run Code Online (Sandbox Code Playgroud)
隐式演员:
class Card
{
...
public static implicit operator Card( string s )
{
return new Card( s );
}
...
}
var ca = new Card[] { "4S", "5C", "AH" };
Run Code Online (Sandbox Code Playgroud)
现在,这是否好看取决于你自己决定.我还会考虑卡类是否应该使用字符串.枚举可能更好,它可能会保存一些验证和解析.
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |