问题描述
我有一个类型:
public struct Value
{
public static Value operator ++(Value v)
{
返回新值();
}
public static Value New()
{
返回新值();
}
}
此代码
价值v1 = Value.New()++;
编译成功,但我得到InvalidProgramException。
相同的
值v = new Value()++;
从struct更改为class无济于事。
Microsoft(R)Visual C#2005编译器版本8.00.50727.42
Win XP SP2。
嗨
JOOI,Mono C#编译器产生编译错误:
"错误CS0131:作业的左侧必须是变量,
属性或索引器
有趣。
-
Tom Spink
爱丁堡大学
嗨
JOOI,Mono C#编译器产生编译错误:
"错误CS0131:作业的左侧必须是变量,
属性或索引器
有趣。
-
Tom Spink
爱丁堡大学
这实际上是C#编译器应该做的,这是一个编译器
错误,在Orcas版本的编译器中得到了纠正。
威利。
Hi,
I have a type:
public struct Value
{
public static Value operator ++(Value v)
{
return new Value();
}
public static Value New()
{
return new Value();
}
}
This code
Value v1 = Value.New()++;
compiles successfully, but i get InvalidProgramException.
The same for
Value v = new Value()++;
Changing from struct to class doesn''t help.
Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.42
Win XP SP2.
Hi
JOOI, the Mono C# Compiler yields a compilation error:
"error CS0131: The left-hand side of an assignment must be a variable, a
property or an indexer"
Interesting.
--
Tom Spink
University of Edinburgh
Hi
JOOI, the Mono C# Compiler yields a compilation error:
"error CS0131: The left-hand side of an assignment must be a variable, a
property or an indexer"
Interesting.
--
Tom Spink
University of Edinburgh
This is actually what the C# compiler should do as well, this is a compiler
error that is corrected in Orcas version of the compiler.
Willy.
这篇关于new和operator ++的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!