嗨,我试图像这样声明一个静态枚举:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Lds.CM.MyApp.Controllers
{
public class MenuBarsController : Controller
{
// Menu Bar enums
public static enum ProfileMenuBarTab { MainProfile, Edit, photoGallery }
public ActionResult cpTopMenuBar(string tabSelected)
{
...
Run Code Online (Sandbox Code Playgroud)
"但我收到以下错误:"修饰符'静态'对此项无效."我知道这很简单,但我似乎无法看到问题.非常感谢!
当我尝试编译以下内容时:
public static delegate void MoveDelegate (Actor sender, MoveDirection args);
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:"modifer'static'对此项无效."
我在一个单例中实现它,有一个单独的类调用委托.问题是,当我在另一个类中使用单例实例来调用委托时(来自标识符,而不是类型),我无论出于何种原因都不能这样做,即使我声明委托是非静态的.显然,当且仅当委托是静态的时候,我才能直接通过类型引用它.
这背后的原因是什么?我使用的是MonoDevelop 2.4.2.
更新
使用以下代码尝试其中一个建议后:
public void Move(MoveDirection moveDir)
{
ProcessMove(moveDir);
}
public void ProcessMove(MoveDirection moveDir)
{
Teleporter.MoveMethod mm = new Teleporter.MoveMethod(Move);
moveDelegate(this, moveDir);
}
Run Code Online (Sandbox Code Playgroud)
我收到了一个处理错误,指出MoveMethod必须是一个类型,而不是标识符.
我总是习惯将结构视为某种较少特权的东西,或者具有较少特征的东西.也许是因为OOP概念将所有东西都吹成了类.
从少量暴露到C#,我理解设置一个静态类,确保其所有成员和函数都是静态的.此外,我们不能有一个构造函数来初始化该类,因为只有一个实例.
public static struct mystruct
{
public static int a;
}
Run Code Online (Sandbox Code Playgroud)
我在堆栈溢出处指出这是一个错误的方法.有人可以详细说明.
当我创建一个新的cs文件并在控制台中编译它时,我得到了相应的错误,说"静态对此项无效".奇怪的是,当我将其添加到现有的工作项目中时,看看编译器是否会抱怨,但令我惊讶的是它没有.这有什么理由?