Tag: C#的

Linq:在连接中==和equals有什么区别?

我总是想知道为什么在linq连接中有一个equals关键字,而不是使用==操作符。 Property deadline = (from p in properties join w in widgets on p.WidgetID equals w.ID select p).First(); 代替 Property deadline = (from p in properties join w in widgets on p.WidgetID == w.ID select p).First(); [编辑]改写了这个问题,并修改了例子。

在.NET中多重inheritance有什么好的select?

我在WPF应用程序中遇到了一些与我的类层次结构有关的问题。 这是两个inheritance树合并在一起的问题之一,并且没有任何合理的方法来使inheritance在没有多重inheritance的情况下顺利进行 。 我想知道是否有人有任何明智的想法,让这种系统工作,没有使其无法遵循或debugging。 我是一个低级别的工程师,所以我的第一个想法总是这样:“哦,我会用C ++编写一些这样的类,然后在外部引用它们,然后我可以让所有的老派OO都变得有趣! 唉,当你需要从托pipe控件inheritance时,这没有帮助… 让我展示一下我目前预计的类图: ____________________________________ _____________________________________ | CustomizableObject | | System.Windows.Controls.UserControl | |____________________________________| |_____________________________________| | string XAMLHeader() | ▲ | string XAMLFooter() |◄–┐ | | CustomizableObject LoadObject() | \ | | <Possible other implementations> | \ | |____________________________________| \ | ▲ ▲ \ | | | \ | | | \ […]

在C中使用\ b和\ r

\b和\r很less在实践中使用。 我刚刚发现我误解了这两个转义序列。 一个简单的testing: printf("foo\bbar\n"); 我期望它输出fobar ,因为\b将退格光标, b将覆盖第二个o ,而是输出: foobar 同样是\r : printf("foo\rbar\n"); 我以为\r会将光标移动到当前行的开头,所以bar会replacefoo ,所以最终的输出应该是bar 。 但是,它实际上输出: foo bar

一次格式化Visual Studio项目中的所有文件

我有兴趣一次全部格式化Visual Studio(ver。2005)项目中的所有文件。 目前,有一种方法可以通过编辑 – >高级 – >格式化文档来格式化单个文档 。 但是,我没有看到一个命令一次全部格式化项目的所有文件。 任何想法如何做到这一点?

为什么微软build议针对可变值的只读字段?

微软在“开发类库的devise指南”中说: 不要将可变types的实例分配给只读字段。 使用可变types创build的对象可以在创build后进行修改。 例如,数组和大多数集合是可变types,而Int32,Uri和String是不可变types。 对于包含可变引用types的字段,只读修饰符可以防止字段值被覆盖,但不保护可变types不被修改。 这只是简单地重申只读行为,而不解释为什么使用只读。 其含义似乎是,许多人不明白“只读”是什么,并错误地认为只读字段是不可变的。 实际上,build议使用“readonly”作为代码文档,指示深度不变性 – 尽pipe编译器无法强制执行此操作 – 并且不允许将其用于其正常function:确保字段的值不会在更改后该对象已被构build。 我对这个build议感到不自在,只能用“只读”来表示一些不同于编译器所理解的正常含义的东西。 我觉得它鼓励人们误解“只读”的意思,而且期望它意味着代码作者可能不想要的东西。 我觉得它排除了在可能有用的地方使用它 – 例如,为了显示两个可变对象之间的某些关系在其中一个对象的生命周期中保持不变。 假定读者不理解“只读”的含义的概念似乎也与微软的其他build议相矛盾,例如FxCop的“不要初始化不必要的”规则,该规则假设读者的代码是语言的专家并且应该知道(例如)bool字段会自动初始化为false,并阻止您提供显示为“是的,这已被有意识地设置为false;我不只是忘记初始化”的冗余。 所以,首先, 为什么微软build议不要使用readonly来引用可变types? 我也有兴趣知道: 你在所有的代码中遵循这个devise指南吗? 当你在一段你没有写的代码中看到“只读”时,你期望什么?

CMake:如何通过预处理macros

我如何将macros传递给预处理器? 例如,如果我想编译我的代码的一部分,因为用户想编译unit testing,我会这样做: #ifdef _COMPILE_UNIT_TESTS_ BLA BLA #endif //_COMPILE_UNIT_TESTS_ 现在我需要将这个值从CMake传递给预处理器。 设置一个variables不起作用,那么我该如何做到这一点?

System.MissingMethodException Int32 System.Environment。 get_CurrentManagedThreadId()

什么可能导致以下exception? System.MissingMethodException Int32 System.Environment.get_CurrentManagedThreadId() 这种方法调用似乎是由C#编译器为产生IEnumerable<>方法生成的。 安装.NET Framework v4.0 x86,并为v4.0 Any CPU编译二进制文件。

指向不可变types的共享指针具有值语义

肖恩家长在“2013年原住民”杂志上发表了题为“ inheritance是邪恶基础类 ”的演讲。 在20分钟50秒的时间内,他发表了一个声明:一个指向不可变(const)types( std::shared_pointer<const T> )的共享指针具有值语义。 这到底是什么意思? 为什么它与共同指向可变(非const)types( std::shared_pointer<T> )的指针有什么不同?

字体文件不与ASP.NET Bundle一起加载

在我的ASP.NET MVC应用程序中,我使用Bundles来压缩css和js文件。 问题是 – 我启用优化模式后,字体不加载。 BundleTable.EnableOptimizations = true; 这是C#代码 public static void RegisterBundles(BundleCollection bundles) { RegisterStyles(bundles); BundleTable.EnableOptimizations = true; } private static void RegisterStyles(BundleCollection bundles) { bundles.Add(new StyleBundle("~/BundleStyles/css").Include( "~/Content/Styles/bootstrap/bootstrap.css", "~/Content/Styles/reset.css", "~/Content/Styles/gridpack/gridpack.css", "~/Content/Styles/fontFaces.css", "~/Content/Styles/icons.css", "~/Content/Styles/inputs.css", "~/Content/Styles/common.css", "~/Content/Styles/header.css", "~/Content/Styles/footer.css", "~/Content/Styles/cslider/slider-animations.css", "~/Content/Styles/cslider/slider-base.css")); } 这里是字体的CSS。 @font-face { font-family: ProximaNova; src: url('../Fonts/ProximaNova/ProximaNova-Bold.otf') format('opentype'); font-weight: bold; font-style: normal; } 这是CSS在页面中被引用的方式。 <link […]

字符数组上的一元加运算符的目的是什么?

以下是做什么的? 我认为+只是整数提升。 char c[20] = "hello"; foo(+c); foo(+"hello");