相关疑难解决方法(0)

49
推荐指数
4
解决办法
5万
查看次数

C# - 何时使用public int virtual,以及何时只使用public int

我正在研究J Galloway的"Professional ASP.NET MVC 3"教程.在本教程中,Jon向我们展示了如何构建MVC音乐商店.

我正处于创建CS类的部分,首先使用EF代码对数据进行建模.

我书中的所有例子public virtual int property {get; set; }没有解释.虚拟这一术语无处不在.

在网络的其他地方,我还没有看到虚拟术语用于任何类型的一致性.

有人可以向我解释一下:

  1. 在这个特定背景下,术语"虚拟"的目的
  2. 使用'虚拟'是必要的吗?
  3. 为什么有些人使用"虚拟"而其他人不使用?
  4. 为什么有些人在定义外键时只使用'virtual'?
  5. "虚拟"一词的最佳实践用法是什么?

提前谢谢了

c# asp.net-mvc entity-framework asp.net-mvc-3

22
推荐指数
2
解决办法
2万
查看次数

通过id从通用列表中删除对象

我有这样的域类:

public class DomainClass
{
  public virtual string name{get;set;}
  public virtual IList<Note> Notes{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我该如何从中删除项目IList<Note>?如果它是一个List我可以做到,但它必须是一个,IList因为我使用Nhibernate作为我的持久层.

理想情况下,我想在我的域类中使用这样的方法:

public virtual void RemoveNote(int id)
{
   //remove the note from the list here

   List<Note> notes = (List<Note>)Notes

   notes.RemoveAll(delegate (Note note)
   {
       return (note.Id = id)
   });
}
Run Code Online (Sandbox Code Playgroud)

但我不能把它IList作为一个List.这周围有更优雅的方式吗?

c# generics compare list

14
推荐指数
2
解决办法
3万
查看次数

C#和C++中VIRTUAL函数的编译器行为差异.这是我在面试中被问到的

虚拟化在C++和c#中有何不同?基本上我想知道Vtable在C#和c ++中表示的方式有什么不同吗?编译器在C#和c ++中创建V表的方式也有区别吗?

基本上,面试官想知道在C#和c ++的情况下,虚函数的编译器行为如何不同.

我已经回答了这个问题,提到VTABLE可能没有区别,期望c#中没有Virtual Destructor.

c# c++ virtual

7
推荐指数
1
解决办法
542
查看次数