C# 无效的表达式项'';,方法“;援引;

C# 无效的表达式项'';,方法“;援引;,c#,visual-studio-2010,C#,Visual Studio 2010,我使用的是visual studio 2010和.net framework版本4,我知道以前有人问过这个问题,解决方案是更改.net framewwork,我安装了.net4.7,但visual studio只接受.net4 公共无效回调(IAsyncResult ar) { 尝试 { sck.EndReceive(ar); 字节[]buf=新字节[8192]; int rec=sck.Receive(buf,buf.Length,0); if(rec

我使用的是visual studio 2010和.net framework版本4,我知道以前有人问过这个问题,解决方案是更改.net framewwork,我安装了.net4.7,但visual studio只接受.net4

公共无效回调(IAsyncResult ar)
{
尝试
{
sck.EndReceive(ar);
字节[]buf=新字节[8192];
int rec=sck.Receive(buf,buf.Length,0);
if(rec
在我的代码中,我收到一个错误,原因是
Received?.Invoke

无效的表达式项“”

只能将赋值、调用、递增、递减和新对象表达式用作语句

是否有任何更改
的建议?请使用其他表单调用


我尝试了
接收!=无效的Received.Invoke:null在C#6中引入了空条件运算符(
?。
)。VisualStudio2010仅支持C#4。您需要Visual Studio 2015或更高版本:您受到Visual Studio版本的限制,而不受.NET版本的限制

您必须使用旧模式来引发事件:

var handler = Received; // The temporary copy is very important to avoid race conditions
if (handler != null)
{
    handler(this, buf);
}

我怀疑您使用的是6.0之前的C#版本(AFAIK,这就是引入空条件运算符的地方)。是否可以更简单地使用这些工具?我会使用一个简单的
if(Received!=null)Received.Invoke(this,buf)
如果这些不可用。ad接收的
是什么
断开的
”解决方案是更改.net framewwork,“不,它正在更改语言版本,这取决于VS的版本。HimBromBeere如何更改*语言版本*?@Selvin我现在在代码中添加了它们。刚才在链接的答案中看到了-更新。谢谢,这解决了上一个错误,但现在我们有了另一个“LanmanWorkstation服务无法启动”,我们正在处理,谢谢大家。