首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何直接分配Int32数据类型?

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

Stack Overflow用户
提问于 2019-02-06 04:19:07
回答 2查看 123关注 0票数 0
代码语言:javascript
复制
Int32 i = new Int32();
i = 10;

这里我是struct数据类型,我们直接给它赋值

代码语言:javascript
复制
struct myst
{
}

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

这里我需要一个属性来赋值,所以问题是Int32如何能够将一个值直接赋值给struct对象?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-06 04:24:48

如果我对你的理解是正确的(我不知道我是否理解)。要隐式分配给自定义类型,需要实现隐式运算符

隐式运算符(C#引用)

隐式关键字用于声明隐式用户定义的类型转换运算符.如果保证转换不会导致数据丢失,则可以使用它在用户定义类型和另一类型之间进行隐式转换。

示例

代码语言:javascript
复制
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);
   }
}

使用

代码语言:javascript
复制
public static void Main()
{
   FunkyStruct s;
   s = 10;
   Console.WriteLine(s.val);
}

更新

Console.WriteLine(s),它应该打印10,就像int一样,我怎么能做到这一点?

它已经做到了

全演示

票数 6
EN

Stack Overflow用户

发布于 2019-02-06 04:29:52

我不是Int32。这里您可以做的一件事是,在struct中创建Int32变量并为此赋值。

代码语言:javascript
复制
 struct myst
    {
       public Int32 a { get; set; }
    }


 static void Main(string[] args)
        {     
            myst mySt = new myst();
            mySt.a = 10;
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54546553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档