Tag: C#的

C#枚举:可为空或“未知”值?

如果我有一个enum成员的类,我想能够表示这个成员没有定义的情况,哪个更好? a)使用可为空的types声明该成员在类中是可空的。 例如: public SomeEnum? myEnum; b)向枚举添加一个默认的“未知”值。 例如: public enum SomeEnum { Unknown, SomeValueA, SomeValueB, SomeValueC, } 我无论如何也看不出任何重大的利弊。 但也许一个比另一个更可取?

如何从文件描述符获取FILE指针?

我正在玩mkstemp(),它提供了一个文件描述符,但我想通过fprintf()生成格式化的输出。 是否有一种简单的方法将mkstemp()提供的文件描述符转换为适合fprintf()使用的FILE *结构?

那么,std :: unique_ptr的定制删除器是如何工作的呢?

根据N3290, std::unique_ptr在其构造函数中接受一个deleter参数。 但是,我不能在Windows中使用Visual C ++ 10.0或MinGW g ++ 4.4.1,也不能使用Ubuntu中的g ++ 4.6.1。 因此,我担心自己对这个问题的理解是不完整或错误的,我看不到一个明显被忽略的删除论点,那么任何人都可以提供一个工作的例子吗? 最好我也想看看unique_ptr<Base> p = unique_ptr<Derived>( new Derived ) 。 可能用标准中的一些措辞来备份这个例子,也就是说,不pipe你使用的是什么编译器,它实际上是做它应该做的事情?

通过IP地址获取用户位置

我有一个用C#编写的ASP.NET网站。 在这个网站上,我需要根据用户的位置自动显示一个开始页面。 我可以根据用户的IP地址获取用户的城市名称吗?

func()vs func(void)在c99中

void func()实际上,一个空的参数表示接受任何参数。 void func(void)接受参数。 但在标准C99中,我发现这样的线: 6.7.5.3函数声明符(包括原型) 14标识符列表仅声明该函数参数的标识符。 函数声明器中的空列表是该函数定义的一部分,指定该函数没有参数。 函数声明器中的空列表不是该函数定义的一部分,它指定不提供有关参数数量或types的信息。 根据标准, func()和func(void)是一样的吗?

用黄金取代ld – 任何经验?

有没有人试图用gold而不是ld ? gold 承诺要比ld快得多,所以它可能有助于加快大型C ++应用程序的testing周期,但是可以用它作为ld的替代品吗? gcc / g++直接调用gold 。 有没有知道的错误或问题? 虽然gold自一段时间以来就是GNU binutils的一部分,但我几乎没有发现Web上的“成功故事”,甚至“Howtos”。 ( 更新:添加链接黄金和博客条目解释 )

在构build期间检查剃刀错误

有没有办法让Visual Studio(我使用2010)在构build过程中在剃刀视图内查找错误,就像C#项目中的其他代码一样? 你可以检查代码中的任何错误,并认为一切正常,但看起来你不能确定的意见,除非你通过每一个。 顺便说一句,我显然不代码在我的意见 – 我只是谈论HTML或URL扩展方法,例如。

为什么`int;`在C中编译好,但在C ++中编译不好?

考虑以下程序(请参阅此处的实时演示)。 #include <stdio.h> int main(void) { int ; // Missing variable name puts("Surprise"); } 我的编译器,gcc 4.8.1,给出了下面的警告: [Warning]空声明中无用的types名称[默认启用] 为什么编译好? 我不应该得到一个编译器错误? 当我编译为C ++程序时,g ++ 4.8.1给出了以下错误: [错误]声明不声明任何[-fpermissive]

基类的构造函数会自动调用吗?

class Person { public int age; public Person() { age = 1; } } class Customer : Person { public Customer() { age += 1; } } Customer customer = new Customer(); 顾客的年龄是2岁? 好像基类的构造函数会被调用,不pipe是什么。 如果是这样的话,为什么我们有时候最后需要打电话给base呢? public Customer() : base() { …………. }

在C ++中使用按位运算符来进行布尔运算

是否有任何理由不使用C ++中的“bool”值按位运算符&,|和^? 我有时遇到两种条件中的一种是真的(XOR),所以我只是把^运算符放到一个条件expression式中。 我也有时候希望评估一个条件的所有部分,不pipe结果是否正确(而不是短路),所以我使用&和|。 我也需要积累布尔值,&=和| =可以是非常有用的。 这样做的时候,我已经提出了一些眉毛,但代码仍然是有意义的,比其他方式更清洁。 有没有任何理由不使用这些bools? 有没有现代编译器给这个不好的结果?