Tag: C#的

Visual Studio C#语句崩溃

当编辑真正长的代码块时(无论如何这肯定会被重构,但这超出了这个问题的范围),我经常渴望能够折叠语句块,就像可以折叠function块一样。 也就是说,如果代码大纲中的大括号所包含的所有内容都显示为负号,那就太好了。 它看起来像函数,类,区域,名称空间,使用,但不适用于条件或迭代块。 如果我能像ifs,switch,foreaches这样的东西瓦解,那将是太棒了! search一下,我发现显然在VS中的C ++概述允许这个,但VS中的C#概述不。 我真的不明白为什么。 即使记事本++会这样折叠,如果我selectC#格式,所以我不明白为什么Visual Studio不。 有谁知道一个VS2008加载项,将启用此行为? 或者某种隐藏的设置呢? 编辑补充说:插入区域当然是一种select,它已经发生在我身上,但坦率地说,我不应该把东西包装在一个已经包裹在大括号中的区域…如果我要编辑现有的代码,我只是重构它,无论如何有更好的分离关注。 (用新方法而不是区域“包装”;)

获取“types或命名空间名称找不到”,但一切似乎没问题?

我得到一个: types或命名空间名称找不到 VS2010中的C#WPF应用程序错误。 这段代码编译正常,但突然间我得到这个错误。 我已经尝试删除项目引用和using声明,closuresVS2010和重新启动,但我仍然有这个问题。 任何想法,为什么这可能会发生,似乎我正在做的事情参考和using声明? 我还注意到在VS2010中,该命名空间的intellisense工作正常,所以它似乎像VS2010一方面有项目引用和看到命名空间,但在编译期间看不到它?

如何使用WPF将文本包装到标签中?

我有一个TextBox和一个标签。 点击一个button后,我执行下面的代码: label1.Content = textbox1.Text; 我的问题是,如何启用标签的文字包装? 在一行中可能会显示太多的文本,如果是这种情况,我想让它自动换行。

在支持循环和函数的语言中使用“goto”是否有利? 如果是这样,为什么?

我一直觉得,如果可能的话,不应该使用goto 。 在阅读libavcodec(用C编写)时,我注意到了它的多种用法。 在支持循环和函数的语言中使用goto是否有利? 如果是这样,为什么?

如何引导gcc / g ++?

这一直在困扰我一段时间。 gcc / g ++如何编译自己? 我猜测每一个版本都会被编译成一个以前的版本。 这是真的? 如果是这样,这是否意味着最古老的g ++ / gcc版本是用汇编编写的?

枚举命名约定 – 复数

我问这个问题,尽pipe阅读类似,但不完全是我想在C#命名约定枚举和匹配属性 我发现我倾向于用复数命名枚举,然后把它们用作单数,例如: public enum EntityTypes { Type1, Type2 } public class SomeClass { /* some codes */ public EntityTypes EntityType {get; set;} } 当然这是有效的,这是我的风格,但是谁能find这样的惯例潜在的问题呢? 虽然我有一个“丑陋”的名字,但是“状态” public enum OrderStatuses { Pending, Fulfilled, Error, Blah, Blah } public class SomeClass { /* some codes */ public OrderStatuses OrderStatus {get; set;} } 附加信息:也许我的问题不够清楚。 命名我定义的枚举types的variables时,我经常不得不认真思考。 我知道最好的做法,但是这并不能帮助我减轻命名这些variables的工作。 我不可能公开所有我的枚举属性(称为“状态”)为“MyStatus”。 我的问题:任何人都可以find上述我的约定潜在的问题? 这不是最佳做法。 […]

Automapper:更新属性值而不创build新的对象

如何使用automapper来更新另一个对象的属性值而不创build新的对象?

如何inheritance构造函数?

想象一下有许多构造函数和虚方法的基类 public class Foo { … public Foo() {…} public Foo(int i) {…} … public virtual void SomethingElse() {…} … } 现在我想创build一个覆盖虚拟方法的后代类: public class Bar : Foo { public override void SomethingElse() {…} } 而另一个后裔,做更多的东西: public class Bah : Bar { public void DoMoreStuff() {…} } 我真的不得不将Foo的所有构造函数复制到Bar和Bah中吗? 然后,如果我在Foo中更改构造函数签名,是否必须在Bar和Bah中更新它? 有没有办法inheritance构造函数? 有没有办法来鼓励代码重用?

在C ++ 11中弃用了哪些C ++习惯用法

新标准有了新的办法,有许多比老办法好,但老办法还是不错的。 出于向下兼容性的原因,新标准也没有被正式弃用。 所以现在的问题是: 旧的编码方式肯定比C ++ 11风格差,我们现在可以做些什么呢? 在回答这个问题时,你可以跳过“使用自动variables”这类显而易见的东西。

为什么stringtypes的默认值是null而不是空string?

在我可以安全地应用ToUpper() , StartWith()等方法之前,testing我的所有string为null是非常烦人的。 如果string的默认值是空string,我不需要testing,我会觉得它是更一致的其他值types,如int或double例如。 此外, Nullable<String>将是有意义的。 那么为什么C#的devise者select使用null作为string的默认值呢? 注意:这涉及到这个问题 ,但更关注为什么而不是如何处理它。