Tag: C#的

C#线程终止和Thread.Abort()

在MSDN中,Thread.Abort()方法的描述表示:“调用此方法通常会终止该线程。 为什么不总是? 在哪种情况下,它不会终止线程? 有没有其他的可能性来终止线程?

从C#代码运行一个exe文件

我在我的C#项目中有一个exe文件引用。 我如何从我的代码调用该exe文件?

如何在entity framework中创build多对多映射?

在这种情况下,我有两个实体,比如Contract,Media。 public class Media : Entity { public string Name {get; set;} public bool Enabled *//other properties can be ignored..* } public class Contract : Entity { public string Code {get; set;} *//other properties can be ignored..* } 合同有很多媒体,看来他们是多对多的。 但!! 在ef代码第一,我需要在ContractMedia表中的3个字段(如自动生成)。 如StartDate,EndDate和Price。 这些不能被添加到Media实体中。 如何在这种情况下映射?

隐式与显式接口的实现

可能重复: C#:接口 – 隐式和显式实现 有人会解释这两个野兽之间的差异,以及如何使用它们。 AFAIK,很多pre.2.0类都是在没有genericstypes的情况下实现的,因此后者版本实现了两种接口types。 是唯一需要使用它的情况吗? 你还可以深入解释如何使用它们。 谢谢

什么时候函数级静态variables被分配/初始化?

我相当确信,在程序开始的时候,全局声明的variables会被分配(并在适用的时候被初始化)。 int globalgarbage; unsigned int anumber = 42; 但是在函数中定义的静态函数呢? void doSomething() { static bool globalish = true; // … } globalish分配的空间是什么时候? 我正在猜测节目什么时候开始。 但是它也被初始化了吗? 或者当doSomething()被第一次调用时它被初始化了吗?

为什么C ++需要用户提供的默认构造函数来默认构build一个const对象?

C ++标准(8.5节)说: 如果一个程序调用一个const限定typesT的对象的默认初始化,T应该是一个具有用户提供的默认构造函数的类types。 为什么? 在这种情况下,我不能想到为什么需要用户提供的构造函数。 struct B{ B():x(42){} int doSomeStuff() const{return x;} int x; }; struct A{ A(){}//other than "because the standard says so", why is this line required? B b;//not required for this example, just to illustrate //how this situation isn't totally useless }; int main(){ const A a; }

Log4net在文件名中使用date滚动每日文件名

我想有文件命名为例如: dd.mm.yyyy.log 这怎么可能与log4net?

为什么。包容很慢? 通过主键获取多个实体的最有效方法?

什么是通过主键select多个实体最有效的方法? public IEnumerable<Models.Image> GetImagesById(IEnumerable<int> ids) { //return ids.Select(id => Images.Find(id)); //is this cool? return Images.Where( im => ids.Contains(im.Id)); //is this better, worse or the same? //is there a (better) third way? } 我意识到我可以做一些性能testing来进行比较,但是我想知道是否有比这两个更好的方法,并且正在寻找一些关于这两个查询之间的区别是什么的启发,如果有的话,一旦他们“翻译”。

可选的虚拟机制实现?

C ++通过虚拟机制支持dynamic绑定。 但据我所知,虚拟机制是编译器的实现细节,标准只是指定了在特定场景下应该发生的行为。 大多数编译器通过虚拟表和虚拟指针来实现虚拟机制。 是的,我知道这是如何工作的,所以我的问题不是关于虚拟指针和表的实现细节。 我的问题是: 除虚拟指针和虚拟表机制之外,是否有任何其他方式实现虚拟机制的编译器? 据我所见(阅读g ++,Microsoft Visual Studio)通过虚拟表,指针机制来实现它。 那么实际上是否还有其他编译器实现呢? 任何具有虚函数的类的sizeof将是该编译器中的一个指针(vptr)的大小。因此,假设虚拟ptr和tbl机制本身就是编译器实现,那么我上面所做的这个陈述总是正确的吗?

如何获得C ++文件的MD5哈希值?

我有文件path。 我怎样才能得到它的MD5哈希?