直接是怎样的Int32数据类型分配?

问题描述 投票:0回答:2
Int32 i = new Int32();
i = 10;

在这里,我是结构数据类型,我们给它的地方直接分配一个值

struct myst
{
}

myst mySt = new myst();
myst = 10;

在这里,我需要一个属性来分配这样的问题是Int32如何能够分配一个值直接Struct对象?

c# .net
2个回答
6
投票

如果我理解正确的话(我不知道如果我这样做)。隐式分配给一个自定义类型,你将需要实现的隐式操作

implicit operator (C# Reference)

隐式关键字用于声明的隐式用户定义的类型的转换运算符。使用它,以使用户定义的类型和另一种类型之间的隐式转换,如果转换保证不会造成数据的损失。

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我怎么能做到这一点

它已经这样做

Full Demo Here


1
投票

神秘岛不是的Int32。有一两件事你可以在这里做的,创造的Int32变量内部结构和该分配值。

 struct myst
    {
       public Int32 a { get; set; }
    }


 static void Main(string[] args)
        {     
            myst mySt = new myst();
            mySt.a = 10;
        }
© www.soinside.com 2019 - 2024. All rights reserved.