如何直接分配Int32数据类型?

时间:2019-02-06 04:19:08

标签: c# .net

Int32 i = new Int32();
i = 10;

这里我是struct数据类型,我们直接在其中分配一个值

struct myst
{
}

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

这里我需要分配一个属性,所以问题是Int32如何能够直接向结构对象分配值?

2 个答案:

答案 0 :(得分:6)

如果我正确理解了您(并且我不知道是否可以)。要将隐式分配给自定义类型,您将需要实现隐式运算符

implicit operator (C# Reference)

  

implicit关键字用于声明隐式用户定义类型   转换运算符。使用它可以在   用户定义的类型和其他类型(如果可以保证转换)   不会造成数据丢失。

示例

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),它应该像显示int一样打印10   实现这一目标

它已经做到了

Full Demo Here

答案 1 :(得分:1)

myst不是Int32。您可以在这里做的一件事是,在struct中创建Int32变量并为其分配值。

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


 static void Main(string[] args)
        {     
            myst mySt = new myst();
            mySt.a = 10;
        }