Tag: .net

你有什么名字定期地join/附加到课堂上?

你经常在课程结束时发现哪些名词? 例如,我有一个习惯,把Info粘贴到传递信息的类上,但不要做太多事情: ImportInfo SiteInfo 或协调类: UserManager SecurityManager 我最终经常使用Builder来创build与string相关的类,即使它几乎没有任何构build: TemplateBuilder HtmlBuilder 当然,永恒的助手/实用程序类: PhraseHelper NumberUtility FileHelper 你有没有什么好的,我的意思是简洁和描述性的,名词或词汇你经常用来表示class级的主要angular色? 这个问题是针对.NET世界的,但是可以扩展到Java,C ++,Python等等。

为什么Main方法是私有的?

新的控制台项目模板创build一个像这样的Main方法: class Program { static void Main(string[] args) { } } 为什么Main方法和Program类都不需要公开?

定义局部variablesconst与类const

如果我使用的只是一个方法中需要的常量,最好在方法范围内还是在类范围内声明const? 在方法中声明它有更好的性能吗? 如果这是真的,我认为在类范围(文件顶部)中定义它们以更改值和重新编译更为简单。 public class Bob { private const int SomeConst = 100; // declare it here? public void MyMethod() { const int SomeConst = 100; // or declare it here? // Do soemthing with SomeConst } }

VS 2015.为ASP.NET 5 Web项目设置正确的目标框架

我在Visual Studio 2015中创build了新的ASP.NET 5 MVC项目。在项目创build向导中,我select了显示.NET框架4.6的模板,然后在下一个屏幕上从ASP.NET 5 Preview中select“Web Application”模板。 但是,创build之后,项目似乎只在project.json的“框架”部分列出了“dnx451”和“dnxcore50”: "frameworks": { "dnx451": { }, "dnxcore50": { } }, 我试图把“dnx451”改成“dnx46”。 该项目已经build成好,但当我试图运行它,我得到了以下错误信息: 当前的运行时目标框架与“…”不兼容。 当前运行时目标框架:“DNX,版本= v4.5.1(dnx451)”types:CLR体系结构:x86版本:1.0.0-beta5 怎样才能改变ASP.NET 5项目的“目标框架”? 这里是我的global.json现在: { "projects": [ "src", "test", "wrap" ], "sdk": { "version": "1.0.0-beta5", "runtime": "clr", "architecture": "x86" } } 但是那里列出的并不重要。 我已经尝试了1.0.0-beta5和最新的1.0.0-beta6的不同版本

使用Fluentvalidation进行条件validation

我需要的是一种有条件地validation字段取决于是否填写其他字段的方法。 防爆。 我有一个下拉和一个相关的date字段。 如果没有设置字段,则表单应该通过validation。 但是,如果两个字段中的一个被设置,而另一个不是,那么validation应该被触发,要求设置另一个字段。 我写了自定义validation类,但它似乎是validation单个字段。 有没有一种方法来设置validation,我需要使用内置的validation器? 如果没有,是否有一个很好的方法来使用自定义validation器连接两个字段?

“使用”语句如何从C#转换为VB?

例如: BitmapImage bitmap = new BitmapImage(); byte[] buffer = GetHugeByteArray(); // from some external source using (MemoryStream stream = new MemoryStream(buffer, false)) { bitmap.BeginInit(); bitmap.CacheOption = BitmapCacheOption.OnLoad; bitmap.StreamSource = stream; bitmap.EndInit(); bitmap.Freeze(); } 你能告诉我更多关于using ? 编辑: 正如在JaredPar的post的评论中所讨论的,这个问题更关心的是在VS2003中Using的实现。 有人指出, Using直到.NET 2.0(VS2005)才被引入。 JaredPar发布了一个等效的解决方法。

ASP.NET MVC中ModelState.AddModelError的关键参数是什么?

如果validation失败,我喜欢在我的控制器中编写validation函数来修改ModelState 。 例如: private bool ValidateMoney(string raw, string name, decimal min, decimal max) { try { var dec = Convert.ToDecimal(raw); if (dec < min) { throw new ArgumentOutOfRangeException(name + " must be >= " + min); } else if (dec > max) { throw new ArgumentOutOfRangeException(name + " must be <= " + max); } […]

为什么.NET值types是密封的?

从C#结构中inheritance是不可能的。 这不是很明显,为什么这是: 显然你不能有一个从值typesinheritance的引用types; 这是行不通的 从原始types(Int32,Double,Char等)中inheritance它是不合理的。 你需要能够使用派生实例调用基类(非虚函数)。 你可以从派生的结构体转换到基体,因为它们会重叠相同的内存。 我猜从基础铸造派生将无法正常工作,因为你不知道在运行时派生的结构types。 我可以看到你不能在你的类层次结构中实现虚拟方法,因为值types不能有虚拟成员 我不知道这是CLR的技术限制,还是C#编译器阻止你做的事情? 编辑:值types不能有虚拟方法,我意识到这种限制排除了大多数情况下,你想使用inheritance。 尽pipe如此,这仍然留下了inheritance。 想象一下带有Colour字段的Shape结构体:我可以编写接受任何从Shape派生的结构体的代码,并访问它的Colour字段,即使我永远不会写一个虚拟的Shape.Draw方法。 我可以想象一个会被非密封值types破坏的场景。 值types应该正确实现Equals和GetHashCode ; 即使System.Object上的这两个方法是虚拟的,它们也会在值types上被非虚拟调用。 即使值types不封闭,写一个从另一个派生的结构的人也不能编写他们自己的这两个方法的实现,并希望正确地调用它们。 我应该指出,我并不是说我应该能够从自己的代码中inheritance结构。 但是我想要做的是猜测为什么这个特定的代码被.NET禁止。 编辑2:我刚刚发现了这个非常类似的问题 ,答案是有效的,因为那么价值types的数组将不起作用。

什么时候不应该在.Net中使用ThreadPool?

什么时候不应该在.Net中使用ThreadPool? 看起来最好的select是使用ThreadPool,在这种情况下,为什么它不是唯一的select? 你有什么经验呢?

使用.NET Framework编写什么语言?

实际上,我一直想问的问题是,害怕.NET Framework写的是什么语言? 我是说图书馆本身。 在我看来,它主要是C和C ++。 (我希望Jon Skeet正在读这篇文章,听听他的想法会非常有趣)