无法创建抽象类或接口的实例

自由建客 2013-03-18 01:20:11
public class Cache {
...

// 载入项
protected Node LoadItem(Int64 id) {
Node node= new Node(); // 此处说无法创建抽象类或接口“Cache.Node”的实例
...
}

// 节点类
protected static class Node {
public Node Prev;
public Node Next;
public Item Data;
// 次类定义只有此三行
}
}
...全文
2398 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
技术小结 2015-03-06
  • 打赏
  • 举报
回复
引用 9 楼 NianHui 的回复:
内部类(就是一个类定义中嵌套在另一个类定义中)默认就是作为其上层类的静态成员出现的,不用你写static
对,在添加类之后,创建类写错了位置。应该这么写,interface 与class并列

namespace v2
{
    interface Cat1
    {  
    }
    public class Cat
    {
    }
}
happyer_longlong 2013-03-18
  • 打赏
  • 举报
回复
抽象类,接口是不能被实例化的
happyer_longlong 2013-03-18
  • 打赏
  • 举报
回复
抽象类,接口是不能被实例化的
#blackheart 2013-03-18
  • 打赏
  • 举报
回复
内部类(就是一个类定义中嵌套在另一个类定义中)默认就是作为其上层类的静态成员出现的,不用你写static
自由建客 2013-03-18
  • 打赏
  • 举报
回复
引用 6 楼 ygy597441072 的回复:
public static F() { } 是不能被定义的因为你的静态方法没有返回值,如果你想写没有返回值的方法,要用void,
我只是意思一下,落了而已。此处重点是说 static。
catchdream 2013-03-18
  • 打赏
  • 举报
回复
引用 2 楼 qldsrx 的回复:
你的Node类是静态的啊,静态类不能有实例。
+1
编程小狂人 2013-03-18
  • 打赏
  • 举报
回复
引用 3 楼 ch_fb 的回复:
好吧,我理解错了。我以为用「static」是表示类所有而非实例对象所有的意思。 C# code?123456789class A { // 假如某处有 A 类对象 a,调用 F() 时要用 A.F() 而非 a.F() public static F() { } // 同理,用 B 类时要用 A.B 而非 a.B public stati……
public static F() { } 是不能被定义的因为你的静态方法没有返回值,如果你想写没有返回值的方法,要用void,
public static void F() {    }
编程小狂人 2013-03-18
  • 打赏
  • 举报
回复
静态类是不能实例化的,直接可以使用,抽象类是用abstract 关键字来声明
  • 打赏
  • 举报
回复
static类是不用实例化的。
自由建客 2013-03-18
  • 打赏
  • 举报
回复
好吧,我理解错了。我以为用「static」是表示类所有而非实例对象所有的意思。
class A {
	// 假如某处有 A 类对象 a,调用 F() 时要用 A.F() 而非 a.F()
	public static F() {
	}

	// 同理,用 B 类时要用 A.B 而非 a.B
	public static class B {
	}
}
qldsrx 2013-03-18
  • 打赏
  • 举报
回复
你的Node类是静态的啊,静态类不能有实例。
自由建客 2013-03-18
  • 打赏
  • 举报
回复
「次类定义只有此三行」当为「此类定义只有此三行」。

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧