运算符和可空类型

.Net技术 码拜 9年前 (2016-05-05) 984次浏览
本人书上划下来的1号句子,适用于结构和本人提供的运算符,你们能不能帮本人写一个简单点代码?用结构体和重载运算符+号!本人实在想不出了,这下面是本人写的代码,本人想用结构体a1+a2然后赋值给a3,可是当本人a1.的时候却没有a字段。谁能帮本人改改,或你们帮本人写一个简单点的代码 让本人看看?但是要符合书上的意思~!谢谢了
运算符和可空类型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace delete
{
class Program
{
static void Main(string[] args)
{
liweike? a1 = new liweike();
liweike? a2 = new liweike();
liweike? a3 = new liweike();
a1.
}

}
struct liweike
{
public int a;
public static liweike operator +(liweike a1, liweike a2)
{
liweike a = new liweike();
a.a = a1.a + a2.a;
return a;
}
}
}

解决方案

20

liweike? a1 = new liweike { a = 1 };
liweike? a2 = new liweike { a = 2 };
liweike? a3 = a1 + a2;
Console.WriteLine(a3.Value.a); //3

20

liweike? a1 = new liweike();
a1.a = 1 ;
这样是不行的,原因是 a1 是可空的,实例化时没给初值的话,连属性名也都没有了
这样就可以
liweike a1 = new liweike();
a1.a = 1 ;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明运算符和可空类型
喜欢 (0)
[1034331897@qq.com]
分享 (0)