Tag: C#的

如何使用带有OR条件的#ifdef?

对不起,提出非常基本的问题。 我想在#ifdef指令中设置OR条件。 怎么做 ? 我试过了 #ifdef LINUX | ANDROID … .. #endif 它不起作用? 什么是正确的方法?

从月份号获取月份名称

可能重复: 如何获取c#中的MonthName? 我使用下面的c#语法来从月份得到月份名称否,但我得到August我只想要Aug .. System.Globalization.DateTimeFormatInfo mfi = new System.Globalization.DateTimeFormatInfo(); string strMonthName = mfi.GetMonthName(8).ToString(); 任何build议…

C不是那么难:void(*(* f )())()

我今天刚看了一张照片,觉得我会很感激的解释。 所以这里是图片: 我发现这是令人困惑的,并想知道这样的代码是否可行。 我GOOGLE了图片,发现在这个 reddit条目中的另一张图片,这里是图片: 那么这个“螺旋式阅读”是有效的? 这是如何C编译器parsing? 如果对这个奇怪的代码有更简单的解释,那将会很棒。 除此之外,这些代码可以用吗? 如果是的话,何时何地? 有一个关于“螺旋规则”的问题,但我不只是问如何应用它,或者如何用这个规则来读取expression式。 我质疑这样的expression式和螺旋规则的有效性的使用。 关于这些,一些很好的答案已经发布。

Visual Studio:如何在智能感知中显示重载?

一旦编写了代码,我知道查看方法的重载的唯一方法就是通过删除括号()并重新打开它们来实际编辑该方法。 有没有一个快捷键,我可以按下来激活这个,而不必编辑我的文件? 例如,请参考下面的ShowDialog Overload屏幕截图:

帮助C#开发人员了解:什么是monad?

这些天有很多关于monad的讨论。 我已经阅读了一些文章/博客文章,但是我不能用他们的例子去充分理解这个概念。 原因是monad是一个function性的语言概念,因此这些例子是用我没有用过的语言(因为我没有深入地使用函数式语言)。 我不能够深入地把握这个语法来完全遵循这些文章,但是我可以告诉我们这里有一些值得理解的东西。 但是,我非常了解C#,包括lambdaexpression式和其他function特性。 我知道C#只有一个function特性的子集,所以monad不能用C#表示。 但是,当然可以传达这个概念吗? 至less我希望如此。 也许你可以提供一个C#的例子作为基础,然后描述一下C#开发人员希望他能从那里做什么,但不能,因为这种语言缺乏函数式编程function。 这将是太棒了,因为它会传达单子的意图和好处。 所以这里是我的问题: 对于C#3开发人员来说,可以给monads最好的解释是什么? 谢谢! (编辑:顺便说一下,我知道至less有3个“monad”是什么问题,但是我面对同样的问题…所以这个问题是需要imo的,因为C#开发人员重点,谢谢。)

为什么函数指针定义与任何数字的&符号或星号“*”一起工作?

为什么下面的工作? void foo() { cout << "Foo to you too!\n"; }; int main() { void (*p1_foo)() = foo; void (*p2_foo)() = *foo; void (*p3_foo)() = &foo; void (*p4_foo)() = *&foo; void (*p5_foo)() = &*foo; void (*p6_foo)() = **foo; void (*p7_foo)() = **********************foo; (*p1_foo)(); (*p2_foo)(); (*p3_foo)(); (*p4_foo)(); (*p5_foo)(); (*p6_foo)(); (*p7_foo)(); }

为什么GCC为几乎相同的C代码生成这种完全不同的程序集?

在写一个优化的ftol函数的时候,我在GCC 4.6.1发现了一些非常奇怪的行为。 让我先告诉你代码(为了清晰起见,我标出了区别): fast_trunc_one,C: int fast_trunc_one(int i) { int mantissa, exponent, sign, r; mantissa = (i & 0x07fffff) | 0x800000; exponent = 150 – ((i >> 23) & 0xff); sign = i & 0x80000000; if (exponent < 0) { r = mantissa << -exponent; /* diff */ } else { r = mantissa >> exponent; […]

==和Equals()在C#中的基元有什么区别?

考虑这个代码: int age = 25; short newAge = 25; Console.WriteLine(age == newAge); //true Console.WriteLine(newAge.Equals(age)); //false Console.ReadLine(); int和short都是原始types,但与==的比较返回true,与Equals的比较返回false。 为什么?

如何在C#中检查数字是正数还是负数?

如何在C#中检查数字是正数还是负数?

清洁的方式在C#中执行空检查?

假设我有这个接口, interface IContact { IAddress address { get; set; } } interface IAddress { string city { get; set; } } class Person : IPerson { public IContact contact { get; set; } } class test { private test() { var person = new Person(); if (person.contact.address.city != null) { //this will never work if […]