我很久以来一直在问自己这个问题.想发布它.C#不支持多重继承(这是事实).在C#中创建的所有类都派生出'Object'类(同样是一个事实).
因此,如果C#不支持多继承,那么即使它已经扩展了Object类,我们如何才能扩展一个类?
用一个例子说明:
我们能够在步骤3之后在A中使用对象类方法.因此转向多级继承.如果是这样的话,那么
有人可以解释一下吗?
你能告诉我这个VB.NET代码的C#等价物:
Public Partial Class Index
Inherits System.Web.Mvc.Viewpage(Of List(Of Task))
End Class
Run Code Online (Sandbox Code Playgroud)
我不知道在C#中将它添加到何处/如何添加:
public partial class DirList : System.Web.Mvc.ViewPage
{
}
Run Code Online (Sandbox Code Playgroud)
该代码假设告诉该类期望来自控制器的任务列表......
在(另有)优秀的书籍C++编码标准,第44项,标题为"首选写非成员非朋友函数"中,Sutter和Alexandrescu建议只有真正需要访问类成员的函数才能成为该类成员.所有其他只能使用成员函数编写的操作不应该是该类的一部分.他们应该是非成员和非成员.争论是:
虽然我看到了这些论点的价值,但我发现了一个很大的缺点:我的IDE无法帮助我找到这些功能!每当我有某种对象时,我想看看它上面有哪些操作,我不能只输入" pMysteriousObject->"并获得成员函数列表.
保持干净的设计最终会让您的编程生活更轻松.但这实际上会让我更难.
所以我想知道它是否真的值得这么麻烦.你怎么处理那件事呢?
我想以排序的方式将结果集中的“随机”输出(大约 150 万行)放入一个文件中。我知道我可以在查询中使用按命令排序,但该命令“昂贵”。你能告诉我有什么算法可以在文件中写入结果集行,以便最终对内容进行排序,我可以通过这个获得性能吗?我使用的是 java 1.6,并且查询有多个连接。
鉴于:
interface I
{
}
class B: I
{
}
class C: I
{
}
class A
{
public void Method(B arg)
{
}
public void Method(C arg)
{
}
public void Method(I arg)
{
// THIS is the method I want to simplify.
if (I is B)
{
this.Method(arg as B);
}
else if (I is C)
{
this.Method(arg as C);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道有更好的方法来设计这种类型的交互,但由于细节需要很长时间来解释这是不可能的.由于这种模式会重复多次,我想用一般的实现来替换条件逻辑,我只能使用一行.我看不到实现这个泛型方法/类的简单方法,但我的直觉告诉我它应该是可能的.
任何帮助,将不胜感激.
c# ×3
.net ×1
asp.net-mvc ×1
c++ ×1
class-design ×1
file ×1
friend ×1
function ×1
generics ×1
ide ×1
java ×1
polymorphism ×1
resultset ×1
sorting ×1
vb.net ×1