Tag: C#的

显示生成date

我目前有一个应用程序在其标题窗口中显示内部版本号。 这对于大多数用户来说没有任何意义,因为他们想知道他们是否拥有最新版本 – 他们倾向于将其称为“上周四”,而不是构build1.0.8.4321。 计划是把build设date,而不是 – 所以“应用程序build于21/10/2009”例如。 我正在努力寻找一个编程的方式来把生成date作为一个文本string使用像这样。 对于版本号,我使用: Assembly.GetExecutingAssembly().GetName().Version.ToString() 在定义了如何出现之后。 我想在编译date(和时间,奖励点)的东西。 在这里的指针非常赞赏(如果适当的话可以辩解一下),或者整洁的解决scheme…

一个正面的lambda:'+ {}' – 这是什么巫术?

在堆栈溢出的问题重新定义在C ++ 11不允许的lambdas,为什么? ,一个小程序不能编译: int main() { auto test = []{}; test = []{}; } 问题得到解答,一切似乎都很好。 然后来到Johannes Schaub ,做了一个有趣的观察 : 如果你在第一个lambda之前加上+ ,神奇地开始工作。 所以我很好奇:为什么下面的工作? int main() { auto test = +[]{}; // Note the unary operator + before the lambda test = []{}; } 它用GCC 4.7+和Clang 3.2+编译得很好。 代码标准是否符合?

检查一个类是否从generics类派生

我有我的派生类项目中的generics类。 public class GenericClass<T> : GenericInterface<T> { } public class Test : GenericClass<SomeType> { } 有没有什么办法来找出一个Type对象是从GenericClass派生? t.IsSubclassOf(typeof(GenericClass<>)) 不起作用。

使用LINQ从List <T>中删除元素

说我有LINQ查询如: var authors = from x in authorsList where x.firstname == "Bob" select x; 鉴于authorsList的types是List<Author> ,我怎样才能从authorsList中删除由查询返回给Author元素? 或者authorsList一种说法,我怎样才能从authorsList删除所有名字相等的Bob? 注意:这是针对该问题的简化示例。

static关键字及其在C ++中的各种用法

关键字static是C ++中的一些含义,我发现它非常容易混淆,而且我永远无法绕开它的实际工作方式。 从我所了解的情况来看,存在static存储持续时间,这意味着它在全局情况下会持续到程序的生命周期,但是当您谈到本地时,这意味着它默认为零初始化。 C ++标准对于关键字为static类数据成员说: 3.7.1静态存储时间[basic.stc.static] 3关键字static可以用来声明一个静态存储持续时间的局部variables。 4类定义中应用于类数据成员的关键字static为数据成员提供静态存储持续时间。 这与局部variables是什么意思? 这是一个函数局部variables? 因为当你声明一个局部static的函数时,它只会被初始化一次,所以它第一次进入这个函数。 它也只是谈论关于类成员的存储时间,那么它是非实例特定的,这也是一个static否定的属性? 或者是那个存储时间? 那么static和文件范围的情况呢? 是否所有的全局variables被认为默认具有静态存储持续时间? 以下(来自第3.7.1节)似乎表明: 1所有没有dynamic存储持续时间的variables,没有线程存储持续时间,并且不在本地有静态存储持续时间。 这些实体的存储应在程序期间持续(3.6.2,3.6.3) static如何与variables的链接相关联? 这整个static关键字是彻头彻尾的混乱,有人可以澄清它的英语的不同用途,也告诉我什么时候初始化static类成员?

如何按字母顺序排列NSArray?

我怎样才能按照字母顺序排列填充[UIFont familyNames]的数组?

std :: string格式,如sprintf

我必须使用sprintf格式化std::string并将其发送到文件stream中。 我该怎么做?

结合C ++和C – #ifdef __cplusplus如何工作?

我正在做一个有很多遗留C代码的项目。 我们已经开始用C ++编写,并且最终还要转换遗留代码。 我对C和C ++如何交互有点困惑。 我明白,通过用extern "C"包装C代码,C ++编译器不会破坏C代码的名称,但我不完全确定如何实现这一点。 所以,在每个C头文件的顶部(包括后卫),我们有 #ifdef __cplusplus extern "C" { #endif 在底部,我们写 #ifdef __cplusplus } #endif 在这两者之间,我们拥有所有的包含,typedef和函数原型。 我有几个问题,看看我是否正确理解这一点: 如果我有一个包含C头文件Bh的C ++文件A.hh,包含另一个C头文件Ch,这是如何工作的? 我认为,当编译器进入Bh时, __cplusplus将被定义,所以它会用extern "C"来包装代码(并且__cplusplus不会在这个块内部被定义)。 所以,当它进入Ch时, __cplusplus将不会被定义,代码也不会被包装在extern "C" 。 它是否正确? 用extern "C" { extern "C" { .. } }包装一段代码有什么不对吗? 第二个extern "C"做什么? 我们不把这个包装在.c文件,只是.h文件。 那么,如果一个函数没有原型,会发生什么? 编译器是否认为它是一个C ++函数? 我们也使用了一些用C编写的第三方代码,并没有这种包装。 任何时候我从这个库中包含一个头文件,我一直在#include周围放置一个extern "C" 。 这是对付这个问题的正确方法吗? 最后,这是一个好主意吗? 还有什么我们该做的? 我们将在可预见的未来混合使用C和C […]

`constexpr`和`const`之间的区别

constexpr和const什么区别? 我什么时候可以只使用其中一个? 我什么时候可以使用,我应该如何select?

expression与声明

我问的问候C#,但我认为它在大多数其他语言相同。 有没有人有一个好的expression和声明的定义,有什么区别?