可能重复: 枚举与string 有可能在枚举中有string常量 enum{name1="hmmm" name2="bdidwe"} 如果不是这样做最好的办法是什么? 我试过它不工作的string,所以现在我将所有相关的常量分组在一个类中 class operation { public const string name1="hmmm"; public const string name2="bdidwe" }
按照Bathsheba的要求,并作为“如果枚举不能整合到一个types中会发生什么?”的后续问题。 : 假设一个枚举定义如下: enum foo : unsigned int { bar = UINT_MAX, oops }; oops的价值是定义的还是不是? MSVS2015编译: warning C4340: 'oops': value wrapped from positive to negative value warning C4309: 'initializing': truncation of constant value warning C4369: 'oops': enumerator value '4294967296' cannot be represented as 'unsigned int', value is '0' MSVS2015输出: bar = 4294967295 oops= 0 gcc […]
使用C#和Visual Studio和MySQL数据连接器将Enum存储在数据库中的最佳方法是什么? 我将要创build一个超过100个枚举的新项目,其中大多数将不得不存储在数据库中。 为每一个创build转换器将是一个漫长的过程,因此,我想知道如果视觉工作室或有人有任何方法,我没有听说过。
阅读后如何testing与相关值的Swift枚举的平等 ,我实现了以下枚举: enum CardRank { case Number(Int) case Jack case Queen case King case Ace } func ==(a: CardRank, b: CardRank) -> Bool { switch (a, b) { case (.Number(let a), .Number(let b)) where a == b: return true case (.Jack, .Jack): return true case (.Queen, .Queen): return true case (.King, .King): return true case […]
在一个领域只有5-10个不同的可能值的情况下使用枚举是否有性能优势? 如果没有什么优势?
例如,如果我有两个情况下的枚举,它是否需要比布尔值更多的内存? 语言:Java,C ++
众所周知,C ++中的内置枚举不是types安全的。 我想知道哪些类实现types安全枚举在那里使用…我自己使用下面的“自行车”,但它有点冗长和有限: typesafeenum.h: struct TypesafeEnum { // Construction: public: TypesafeEnum(): id (next_id++), name("") {} TypesafeEnum(const std::string& n): id(next_id++), name(n) {} // Operations: public: bool operator == (const TypesafeEnum& right) const; bool operator != (const TypesafeEnum& right) const; bool operator < (const TypesafeEnum& right) const; std::string to_string() const { return name; } // Implementation: private: […]
在阅读String java.lang.Enum.name()的文档后,我不确定何时使用name()以及何时使用toString() 。 返回此枚举常量的名称,与其枚举声明中声明的完全相同。 大多数程序员应该优先使用toString方法,因为toString方法可能会返回一个用户友好的名称。 此方法主要用于特殊情况下,正确性取决于获取确切的名称,从发行版到发行版不会有所不同。 尤其是,尽pipe文档中提供了更喜欢toString() ,但是Java自己的StandardLocation枚举使用了name当我以为文档中有其他的含义时。 public String getName() { return name(); } 此外, Enum实现toString() as, public String toString() { return name; } 我想不出用户定义的枚举会覆盖toString()所以name()和toString()几乎总是一模一样。 你能解释为什么忽略文档,总是使用name()是一个坏主意? 那么“从发布到发布不会有所不同”这个词呢? 如果名称不会改变,是否意味着java.lang.Enum.toString()会?
我想枚举Swift中的数组,并删除某些项目。 我想知道如果这是安全的,如果不是,我应该怎么做到这一点。 目前,我会这样做: for (index, aString: String) in enumerate(array) { //Some of the strings… array.removeAtIndex(index) }
这是一个C ++面试testing题而不是作业。 #include <iostream> using namespace std; enum months_t { january, february, march, april, may, june, july, august, september, october, november, december} y2k; int main () { cout << "sizeof months_t is " << sizeof(months_t) << endl; cout << "sizeof y2k is " << sizeof(y2k) << endl; enum months_t1 { january, february, march, april, may, […]