收到错误“必须声明主体,因为它不标注抽象的或外部的”

我有一个方法修改它做了手术ClientModify内。

public bool Modify() { bool retval = false; retval = Spa.ClientModify(col); }

在这里,我想要的是ClientModify应该执行的事件处理程序“ServerEvents”,否则,它应该返回(RETVAL)错误。如何完成后才三项赛事,我可以做到这一点的“Spa.ClientModify”检查

static private void ServerEvents(eventType type, event this_event, object passback) { if (this_event.type == eventType.SPD_spurtEvent) { if (this_event.objectName == "ready") { // some operation } else if (this_event.objectName == "info") { // some operation } else if (this_event.objectName == "serverstate") { // some operation } } }

所以,我所做的是

public class Server : ModelObject, IServer { public class MyState { public bool Method1HasExecuted { get; set; } public bool Method2HasExecuted { get; set; } public bool Method3HasExecuted { get; set; } } } static private void ServerEvents(eventType type, event this_event, object passback) { MyState s = new MyState(); each three operation i did check like this s.Method1HasExecuted = true; like this } and modify method i did this way public bool Modify() { return MyClassState.Method1HasExecuted && MyClassState.Method2HasExecuted && MyClassState.Method3HasExecuted ? Spa.ClientModify() : false; }

}

然后我收到错误Spo.Plugins.Server.MyState.Method1HasExecuted.get“必须声明主体,因为它不标记为abstract或EXTERN ,,有没有其他的办法

--------------解决方案-------------

您正在使用.NET 2.0,所以你不能使用autoimplemented性能。 您需要更改MyState类是这样的:

public class MyState
{
private bool _method1HasExecuted;
private bool _method2HasExecuted;
private bool _method3HasExecuted;

public bool Method1HasExecuted
{
get
{
return _method1HasExecuted;
}
set
{
_method1HasExecuted = value;
}
}

public bool Method2HasExecuted
{
get
{
return _method2HasExecuted;
}
set
{
_method2HasExecuted = value;
}
}
public bool Method3HasExecuted
{
get
{
return _method3HasExecuted;
}
set
{
_method3HasExecuted = value;
}
}
}

public bool Method1HasExecuted { get; set; } public bool Method1HasExecuted { get; set; }是一个自动实现的属性,它可以从C#3.0起。

您是否使用C#2.0? 然后,你将不得不写出来的属性:

private bool _method1HasExecuted;
public bool Method1HasExecuted
{
get { return _method1HasExecuted; }
set { _method1HasExecuted = value; }
}

public bool Method1HasExecuted { get; set; }

此属性的get / set方法都没有实现,所以这就是为什么编译器抱怨。 同时实现setter和财产的getter摆脱错误的。

通常情况下,你在你的标题中引用的错误出现,当你有一个方法定义为任何东西比其他abstractextern但你没有一具尸体。 可能是类似以下之一:

public virtual void DoStuff();
public int GetANumber();
public string ReturnAString();

这些都不编译。 我的猜测,根据您所提供的是什么,是你有一些方法(可能ClientModify因为我没有看到它的定义,你贴的代码),其定义的名称和标志,但没有身体。

如果不是这种情况,请指明该编译器错误是指方法(你可以得到这个通过双击clikcing在VS的错误,如果它不能在错误消息中指定),并发布其代码和一个代码的样品是指它。

您还没有发布你的iServer的接口,但是,错误可能是因为您还没有实现所有的方法或属性类服务器接口iServer的上

如果您使用的是.NET 3.5或更高版本的公共BOOL Method1HasExecuted {获得; 组; }将自动属性

我不知道,我完全理解你的问题,但你需要挂接到3不相关的方法调用,这样就可以标志你的statemanagement类对应的布尔值?

你是如何编译这一点。 代码public bool Method1HasExecuted { get; set; } public bool Method1HasExecuted { get; set; } public bool Method1HasExecuted { get; set; }是有效的C#3(自动实现的属性),但不是有效的C#2(没有自动实现的属性)。 到C#2那样子你写了一个抽象的或EXTERN属性,但这样并没有对它进行标记。 检查你编译的3.5框架。

分类:C# 时间:2015-03-15 人气:0
本文关键词: C#的WinForms
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.204 (s). 10 q(s)