因为结构(值类型)默认没有支持==操作符。如果T是值类型,编译器并没有把握T可以使用==操作符。static void Main()
{
S s1 = new S();
S s2 = new S();
bool b = s1 == s2; // 编译错误
}struct S
{
public int i;
}
{
S s1 = new S();
S s2 = new S();
bool b = s1 == s2; // 编译错误
}struct S
{
public int i;
}
解决方案 »
- 在C#中,StringBuilder类型的变量,如果需要引用传递参数,需要加ref或者out吗?
- C# menuStrip 点击一个菜单它状态改变,点击其他菜单,该菜单恢复
- wcf 客户端 如何 动态的联接 wcf 服务器呢 100分求解
- 我写了一个餐饮软件,有87M左右,在本论坛可以免费上传发布吗?
- 求DATAGRID 复式3层表头的例子!
- 如何在Excel中插入一个矢量图片
- 关于正则表达式的问题
- 很奇怪的问题,编译后的可执行文件必须更改名字才能运行
- 解决方案的问题
- 我有个txt文件,我不想让浏览器显示,要弹出下载的窗口下载怎么办?
- 如何获取这样的XML节点
- 我想实现一个多线程执行一个相同方法,然是又希望每一个线程执行到这个方法时可以自由的分配
private void Test<T>(T para1, T para2) where T : struct
{
if (para1.Equals(para2))
{
}
}