Tag: C#的

我应该标记所有方法虚拟?

在Java中,您可以将方法标记为final,以使其不可覆盖。 在C#中,您必须将方法标记为虚拟以使其可以覆盖。 这是否意味着在C#中你应该标记所有的方法是虚拟的(除了几个你不想被覆盖的方法),因为你很可能不知道你的类可以被inheritance的方式?

在C ++和D中进行元编程

C ++中的模板机制只是偶然地对模板元编程有用。 另一方面,D的devise是为了方便这个。 显然这更容易理解(或者我听说过)。 我对D没有经验,但是我很好奇,在D中你能做什么,在模板元编程中你不能用C ++呢?

我怎样才能让我的C代码自动打印出其Git版本哈希?

有没有简单的方法来编写可以访问其Git版本哈希的C代码? 我用C编写软件来收集实验室的科学数据。 我的代码logging了它收集在.yaml文件中的数据,以供以后分析。 我的实验每天都在变化,我经常需要修改代码。 为了跟踪修订,我使用了一个git仓库。 我希望能够在我的.yaml数据文件中包含Git修订哈希作为注释。 这样,我可以查看.yaml文件,并确切知道用​​什么代码生成该文件中显示的数据。 有没有一种简单的方法来自动做到这一点?

ASP.NET MVC 3 Razorrecursion函数

好的,所以我想显示一个包含列表清单的清单… 我无法知道需要显示多less个关卡,所以我想这就是我发现旧的recursion程序的地方。 我正在遇到问题,但是如何去做这个。 这是我到目前为止(在视图 – 简化): @foreach(MyObject item in @Model.ListOfObjects){ <div> @item.Title </div> //Call recursive function? } 现在每个这些对象也都有一个List <MyObject>。 我想要显示这个div下面的每个级别,每个级别的标签缩进例如。 我认为Razorfunction在这里是可以做的,但是我需要一些帮助来形成它。 这是我的想法: @functions{ public static void ShowSubItems(MyObject _object){ if(_object.ListOfObjects.Count>0){ foreach(MyObject subItem in _object.listOfObjects){ // Show subItem in HTML ShowSubItems(subItem); } } } } 但正如你所看到的,我显然需要一些帮助:)

如何在Visual C#2010 Express中debugging和发布之间切换?

如何在Visual C#2010 Express中debugging和发布之间切换? 我已经看了项目属性,但似乎缺less。 我错过了什么?

你怎么find这个月的最后一天?

可能重复: 如何获得一个月的最后一天? 到目前为止,我有这样的: DateTime createDate = new DateTime(year, month, 1).AddMonths(1).AddDays(-1); 有没有更好的办法?

我可以假设长整型的大小总是4个字节?

long int (据我所知是一个long的同义词)是否总是为4个字节? 我可以依靠吗? 如果不是的话,对于一个基于POSIX的操作系统来说可能是真的吗

为什么每次都要在C中指定数据types?

正如你可以从下面的代码片断看到的,我已经声明了一个charvariables和一个intvariables。 当代码被编译时,它必须识别variablesstr和i的数据types。 为什么我需要通过指定%s或%d到scanf来扫描我的variables是否是string或整型variables? 编译器不够成熟,无法识别当我声明我的variables? #include <stdio.h> int main () { char str [80]; int i; printf ("Enter your family name: "); scanf ("%s",str); printf ("Enter your age: "); scanf ("%d",&i); return 0; }

自动创build空的C#事件处理程序

在C#中没有附加处理程序的事件是不可能的。 所以在每次调用之前,都需要检查事件是否为空。 if ( MyEvent != null ) { MyEvent( param1, param2 ); } 我想保持我的代码尽可能干净,摆脱这些空检查。 我不认为这会影响performance,至less不会影响我的performance。 MyEvent( param1, param2 ); 现在我通过手动为每个事件添加一个空的内联处理程序来解决这个问题。 这是错误的容易,因为我需要记住这样做等。 void Initialize() { MyEvent += new MyEvent( (p1,p2) => { } ); } 有没有办法使用reflection和一些CLR魔法自动生成给定类的所有事件的空处理程序?

locking的对象是否locking,如果内部发生exception?

在ac#线程应用程序,如果我要locking一个对象,让我们说一个队列,如果发生exception,对象将保持locking? 这里是伪代码: int ii; lock(MyQueue) { MyClass LclClass = (MyClass)MyQueue.Dequeue(); try { ii = int.parse(LclClass.SomeString); } catch { MessageBox.Show("Error parsing string"); } } 据我了解,catch之后的代码不会执行 – 但我一直在想如果锁将被释放。