คำถามติดแท็ก enums

ชนิดข้อมูลประกอบด้วยชุดของค่าที่กำหนดชื่อเรียกว่าองค์ประกอบสมาชิกหรือตัวแจงนับของชนิด

8
วิธีการแปลงจาก System.Enum เป็นจำนวนเต็มฐาน?
ฉันต้องการสร้างเมธอดทั่วไปสำหรับการแปลงประเภทที่ได้รับ System.Enum เป็นค่าจำนวนเต็มที่สอดคล้องกันโดยไม่ต้องแคสต์และไม่ควรแยกวิเคราะห์สตริง เช่นสิ่งที่ฉันต้องการมีดังนี้: // Trivial example, not actually what I'm doing. class Converter { int ToInteger(System.Enum anEnum) { (int)anEnum; } } แต่ดูเหมือนจะไม่ได้ผล Resharper รายงานว่าคุณไม่สามารถส่งนิพจน์ประเภท 'System.Enum' เพื่อพิมพ์ 'int' ได้ ตอนนี้ฉันคิดวิธีแก้ปัญหานี้ขึ้นมาแล้ว แต่ฉันอยากมีอะไรที่มีประสิทธิภาพมากกว่านี้ class Converter { int ToInteger(System.Enum anEnum) { return int.Parse(anEnum.ToString("d")); } } ข้อเสนอแนะใด ๆ ?

3
วิธีการแปลง int เป็น Enum ใน python?
ใช้คุณลักษณะ Enum ใหม่ (ผ่านbackport enum34 ) กับ python 2.7.6 ด้วยคำจำกัดความต่อไปนี้ฉันจะแปลง int เป็นค่า Enum ที่สอดคล้องกันได้อย่างไร from enum import Enum class Fruit(Enum): Apple = 4 Orange = 5 Pear = 6 ฉันรู้ว่าฉันสามารถสร้างชุดคำสั่ง if เพื่อทำการแปลงได้ แต่มีวิธีง่ายๆในการแปลงหรือไม่ โดยทั่วไปฉันต้องการฟังก์ชั่น ConvertIntToFruit (int) ที่ส่งคืนค่า enum กรณีการใช้งานของฉันคือฉันมีไฟล์ csv ของเร็กคอร์ดที่ฉันกำลังอ่านแต่ละเร็กคอร์ดในอ็อบเจ็กต์ หนึ่งในฟิลด์ไฟล์คือฟิลด์จำนวนเต็มที่แสดงถึงการแจงนับ ขณะที่ฉันกำลังเติมวัตถุฉันต้องการแปลงฟิลด์จำนวนเต็มจากไฟล์เป็นค่า Enum ที่สอดคล้องกันในออบเจ็กต์

7
การต่อสมาชิก Enum เป็น JSON
ฉันจะทำให้EnumสมาชิกPython เป็นอนุกรมเป็นJSON ได้อย่างไรเพื่อที่ฉันจะสามารถยกเลิกการกำหนดค่า JSON ที่เป็นผลลัพธ์กลับไปยังวัตถุ Python ได้ ตัวอย่างเช่นรหัสนี้: from enum import Enum import json class Status(Enum): success = 0 json.dumps(Status.success) ผลลัพธ์ในข้อผิดพลาด: TypeError: <Status.success: 0> is not JSON serializable ฉันจะหลีกเลี่ยงสิ่งนั้นได้อย่างไร?

5
เหตุใดจึงใช้ CompareTo บน Enum ขั้นสุดท้ายใน Java
enum ใน Java ใช้Comparableอินเทอร์เฟซ ก็จะได้รับความสุขที่จะแทนที่Comparable's compareToวิธี แต่ที่นี่ก็ทำเครื่องหมายเป็นครั้งสุดท้าย ลำดับธรรมชาติเริ่มต้นEnumของcompareToคือลำดับที่ระบุไว้ ไม่มีใครรู้ว่าทำไม Java enums ถึงมีข้อ จำกัด นี้?

3
Swift: การทดสอบกับค่าทางเลือกในกรณีสวิตช์
ในสวิฟท์, วิธีการที่ฉันสามารถเขียนกรณีในงบสวิทช์ว่าการทดสอบเป็นค่าเปลี่ยนกับเนื้อหาของนั้นไม่จำเป็นกระโดดกว่าในกรณีที่จำเป็นมีnil? นี่คือวิธีที่ฉันคิดว่าสิ่งนี้อาจมีลักษณะ: let someValue = 5 let someOptional: Int? = nil switch someValue { case someOptional: // someOptional is non-nil, and someValue equals the unwrapped contents of someOptional default: // either, someOptional is nil, or someOptional is non-nil but someValue does not equal the unwrapped contents of someOptional } …

7
ฉันควรหลีกเลี่ยงการใช้ enums บน Android อย่างเคร่งครัดหรือไม่
ฉันเคยกำหนดชุดของค่าคงที่ที่เกี่ยวข้องเช่นBundleคีย์ด้วยกันในอินเทอร์เฟซดังต่อไปนี้: public interface From{ String LOGIN_SCREEN = "LoginSCreen"; String NOTIFICATION = "Notification"; String WIDGET = "widget"; } นี่เป็นวิธีที่ดีกว่าในการจัดกลุ่มค่าคงที่ที่เกี่ยวข้องเข้าด้วยกันและใช้โดยการนำเข้าแบบคงที่ (ไม่ใช่การใช้งาน) ฉันรู้ว่าAndroidกรอบการทำงานยังใช้ค่าคงที่ในลักษณะเดียวกันเช่น,Toast.LENTH_LONGView.GONE อย่างไรก็ตามฉันมักรู้สึกว่าJava Enumsวิธีนี้ให้วิธีที่ดีกว่าและมีประสิทธิภาพมากในการแสดงค่าคงที่ แต่มีปัญหาในการใช้งานenumsบนAndroid? ด้วยการค้นคว้าเล็กน้อยฉันจบลงด้วยความสับสน จากคำถามนี้ "หลีกเลี่ยง Enums ในที่ที่คุณต้องการเพียง Ints" ถูกลบออกจากเคล็ดลับประสิทธิภาพของ Android เป็นที่ชัดเจนว่าGoogleได้ลบ"หลีกเลี่ยง enums"ออกจากเคล็ดลับการปฏิบัติงาน แต่จากเอกสารการฝึกอบรมอย่างเป็นทางการโปรดทราบส่วนค่าใช้จ่ายของหน่วยความจำจะระบุไว้อย่างชัดเจนว่า: "Enums มักต้องการหน่วยความจำมากกว่าค่าคงที่มากกว่าสองเท่า คุณควรหลีกเลี่ยงการใช้ enums บน Android อย่างเคร่งครัด "สิ่งนี้ยังใช้ได้ดีอยู่หรือไม่ (พูดในJavaเวอร์ชันหลัง 1.6) อีกปัญหาหนึ่งที่ฉันสังเกตเห็นคือการส่งenumsข้ามintentsโดยใช้Bundleฉันควรส่งโดยการทำให้เป็นอนุกรม (เช่นputSerializable()ฉันคิดว่าการดำเนินการที่มีราคาแพงเมื่อเทียบกับputString()วิธีดั้งเดิมแม้ว่าจะenumsให้ฟรี) ใครช่วยอธิบายได้Androidไหมว่าวิธีใดเป็นวิธีที่ดีที่สุดในการแสดงความคิดเห็น ฉันควรจะหลีกเลี่ยงการใช้อย่างเคร่งครัดenumsในAndroid?
93 java  android  enums 

8
หลักการตั้งชื่อ C # สำหรับ enum และคุณสมบัติที่ตรงกัน
ฉันมักจะพบว่าตัวเองกำลังใช้คลาสที่คงคุณสมบัติสถานะของตัวเองไว้เป็น enum: ฉันมีสถานะ enum และคุณสมบัติสถานะ ONE ของประเภทสถานะ ฉันจะแก้ปัญหาความขัดแย้งของชื่อนี้ได้อย่างไร? public class Car { public enum Status { Off, Starting, Moving }; Status status = Status.Off; public Status Status // <===== Won't compile ===== { get { return status; } set { status = value; DoSomething(); } } } ถ้าสถานะ enum เป็นประเภทต่างๆฉันจะวางไว้นอกชั้นเรียนและปัญหาจะได้รับการแก้ไข …


2
การแม็พ enum กับสตริงในโหมดไฮเบอร์เนต
ฉันมีโมเดล Category Hibernate: @Entity @Table(name = "category") public class Category { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "id") private long id; @Column(name = "type") private String type; ซึ่งมีฟิลด์สตริงประเภท นอกจากนี้ฉันยังมี Java enum ซึ่งแสดงถึงประเภทของหมวดหมู่: public enum CategoryType { INCOME, OUTCOME; } ซึ่งฉันต้องการใช้แทนประเภทสตริง สร้าง SQL ยอมรับสองค่าที่แตกต่างกันในพารามิเตอร์ varchar นี้อย่างใดอย่างหนึ่งหรือCategoryIncome CategoryOutcomeฉันต้องการให้คลาสโมเดลประเภทยอมรับตัวแปร enum - และแมปกับสตริงเมื่อใดก็ตามที่ไฮเบอร์เนตขอ เป็นไปได้ไหม?
93 java  hibernate  enums 


9
ฉันจะใช้ตัวเปรียบเทียบเพื่อกำหนดลำดับการจัดเรียงแบบกำหนดเองได้อย่างไร
ฉันต้องการพัฒนาการสาธิตการเรียงลำดับสำหรับรายการรถ ฉันใช้ตารางข้อมูลเพื่อแสดงรายการรถ ตอนนี้จริงๆแล้วฉันต้องการจัดเรียงรายการตามสีรถ ที่นี่ไม่ได้เรียงตามลำดับตัวอักษร ฉันต้องการใช้ลำดับการจัดเรียงที่กำหนดเองเช่นรถสีแดงมาก่อนแล้วสีน้ำเงินเป็นต้น เพื่อที่ฉันพยายามที่จะใช้ Java ComparatorและComparableแต่มันจะช่วยให้การเรียงลำดับตามตัวอักษรเท่านั้น มีใครช่วยแนะนำวิธีการนำเทคนิคไปใช้ได้ไหมเพื่อให้การเรียงลำดับเร็วขึ้น class Car implements Comparable<Car> { private String name; private String color; public Car(String name, String color){ this.name = name; this.color = color; } //Implement the natural order for this class public int compareTo(Car c) { return name.compareTo(c.name); } static class ColorComparator …
92 java  sorting  enums 

10
จะรับอาร์เรย์ของค่า enum ทั้งหมดใน C # ได้อย่างไร?
ฉันมี enum ที่ฉันต้องการแสดงค่าที่เป็นไปได้ทั้งหมดของ มีวิธีรับอาร์เรย์หรือรายการค่าที่เป็นไปได้ทั้งหมดของ enum แทนที่จะสร้างรายการด้วยตนเองหรือไม่? เช่นถ้าฉันมี enum: public enum Enumnum { TypeA, TypeB, TypeC, TypeD } ฉันจะได้รับList<Enumnum>ที่ประกอบด้วยได้{ TypeA, TypeB, TypeC, TypeD }อย่างไร
92 c#  enums 

5
วิธีการสร้างและใช้ Enum ในพังพอน
ฉันพยายามสร้างและใช้enumประเภทหนึ่งในพังพอน ฉันตรวจสอบแล้ว แต่ไม่ได้ผลลัพธ์ที่ถูกต้อง ฉันใช้enumในโปรแกรมของฉันดังนี้: สคีมาของฉันคือ: var RequirementSchema = new mongooseSchema({ status: { type: String, enum : ['NEW,'STATUS'], default: 'NEW' }, }) แต่ฉันสับสนเล็กน้อยตรงนี้ฉันจะใส่ค่าของการenumชอบเข้าไปJava NEW("new")ได้อย่างไร ฉันจะบันทึกenumข้อมูลในฐานข้อมูลตามค่าที่แจกแจงได้อย่างไร ฉันใช้มันในโหนดด่วน js.


11
วิธีการระบุประเภท enum โดยทางโปรแกรม?
บอกว่าผมมี typescript enum, MyEnumดังต่อไปนี้: enum MyEnum { First, Second, Third } อะไรคือวิธีที่ดีที่สุดใน TypeScript 0.9.5 ในการสร้างอาร์เรย์ของenumค่า? ตัวอย่าง: var choices: MyEnum[]; // or Array<MyEnum> choices = MyEnum.GetValues(); // plans for this? choices = EnumEx.GetValues(MyEnum); // or, how to roll my own?
91 enums  typescript 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.