Int32 i = new Int32();
i = 10;这里我是struct数据类型,我们直接给它赋值
struct myst
{
}
myst mySt = new myst();
myst = 10;这里我需要一个属性来赋值,所以问题是Int32如何能够将一个值直接赋值给struct对象?
发布于 2019-02-06 04:24:48
如果我对你的理解是正确的(我不知道我是否理解)。要隐式分配给自定义类型,需要实现隐式运算符
隐式关键字用于声明隐式用户定义的类型转换运算符.如果保证转换不会导致数据丢失,则可以使用它在用户定义类型和另一类型之间进行隐式转换。
示例
struct FunkyStruct
{
public FunkyStruct(int d) { val = d; }
public int val;
// ...other members
// User-defined conversion from Digit to double
public static implicit operator int(FunkyStruct d)
{
return d.val;
}
// User-defined conversion from double to Digit
public static implicit operator FunkyStruct(int d)
{
return new FunkyStruct(d);
}
}使用
public static void Main()
{
FunkyStruct s;
s = 10;
Console.WriteLine(s.val);
}更新
Console.WriteLine(s),它应该打印10,就像int一样,我怎么能做到这一点?
它已经做到了
全演示
发布于 2019-02-06 04:29:52
我不是Int32。这里您可以做的一件事是,在struct中创建Int32变量并为此赋值。
struct myst
{
public Int32 a { get; set; }
}
static void Main(string[] args)
{
myst mySt = new myst();
mySt.a = 10;
}https://stackoverflow.com/questions/54546553
复制相似问题