ค่าเริ่มต้นสำหรับ Guid คืออะไร?


111

ค่าเริ่มต้นintคือ 0 สำหรับstringคือ "" และค่าbooleanนี้เป็นเท็จ ใครช่วยชี้แจงได้guidไหมว่าค่าเริ่มต้นคืออะไร


26
ค่าเริ่มต้นGuid คือ{00000000-0000-0000-0000-000000000000}. โดยพื้นฐานแล้วมันคือศูนย์ไบนารี
Szer


1
เว็บไซต์นี้สามารถจัดหาคู่มือเปล่า00000000-0000-0000-0000-000000000000.com
Matthew

1
หมายเหตุด้านข้าง: ค่าเริ่มต้นของสตริงคือโมฆะไม่ใช่ "" (;
Johan Wintgens

คำตอบ:


122

คุณสามารถใช้วิธีการเหล่านี้เพื่อรับ guid ที่ว่างเปล่า ผลลัพธ์จะเป็นแนวทางโดยตัวเลขทั้งหมดเป็น 0 - " 00000000-0000-0000-0000-000000000000"

new Guid()

default(Guid)

Guid.Empty

44

คุณสามารถใช้Guid.Empty. เป็นอินสแตนซ์แบบอ่านอย่างเดียวของโครงสร้าง Guid ที่มีค่าเป็น00000000-0000-0000-0000-000000000000

คุณยังสามารถใช้สิ่งเหล่านี้แทนได้

var g = new Guid();
var g = default(Guid);

ระวังอย่าใช้Guid.NewGuid()เพราะจะสร้าง Guid ใหม่

ใช้ตัวเลือกใดตัวเลือกหนึ่งด้านบนซึ่งคุณและทีมของคุณคิดว่าอ่านได้ง่ายกว่าและปฏิบัติตาม อย่าผสมตัวเลือกต่างๆในโค้ด ผมคิดว่าGuid.Emptyเป็นคนที่ดีที่สุดตั้งแต่new Guid()อาจทำให้เราคิดว่ามันคือการสร้าง GUID default(Guid)ที่ใหม่และบางคนอาจไม่ทราบว่าเป็นค่าของ


20

ค่าเริ่มต้นสำหรับ GUID ว่างเปล่า (เช่น: 00000000-0000-0000-0000-000000000000)

สามารถเรียกใช้โดยใช้Guid.Empty()หรือnew Guid()

หากคุณต้องการ GUID ใหม่ให้ใช้ไฟล์ Guid.NewGuid()


8
@anchor ฉันสังเกตเห็นว่าคุณไม่เคยยอมรับคำตอบสำหรับคำถามของคุณเลย ที่นี่ - ในคำถามที่พบบ่อยของ StackExchangeคุณสามารถอ่านวิธียอมรับคำตอบและเหตุผลที่คุณควรทำเช่นนั้น
Genhis

1
@ เจนนี่ฉันคิดว่าเขาได้ในสิ่งที่ต้องการแล้วก็หลุดจากพื้นโลกฮ่า ๆ
เดวิดวัตต์

10

หากต้องการขยายคำตอบข้างต้นคุณไม่สามารถใช้ Guid default value กับGuid.Emptyเป็นอาร์กิวเมนต์ที่เป็นทางเลือกใน method, indexer หรือ delegate definition เนื่องจากจะทำให้คุณเกิดข้อผิดพลาดในการคอมไพล์ ใช้default(Guid)หรือnew Guid()แทน


-1

สร้างคู่มือว่างเปล่าหรือคู่มือใหม่โดยใช้คลาส ...

ค่าเริ่มต้นของ Guid คือ00000000-0000-0000-0000-000000000000

public class clsGuid  ---This is class Name
{
    public Guid MyGuid { get; set; }
}

static void Main(string[] args)
        {
            clsGuid cs = new clsGuid();   
            Console.WriteLine(cs.MyGuid); --this will give empty Guid  "00000000-0000-0000-0000-000000000000"

            cs.MyGuid = new Guid();
            Console.WriteLine(cs.MyGuid); ----this will also give empty Guid  "00000000-0000-0000-0000-000000000000"

            cs.MyGuid = Guid.NewGuid();
            Console.WriteLine(cs.MyGuid); --this way, it will give new guid  "d94828f8-7fa0-4dd0-bf91-49d81d5646af"

            Console.ReadKey(); --this line holding the output screen in console application...
        }

ใช่ ... คุณสามารถทำให้ค่าคลาสเป็นค่าคงที่ ... หรือใช้ในคลาส ..
Akhilesh Singh

ฉันรู้ว่าเราสามารถใช้ Guid ได้เพราะเราสามารถใช้ประเภทอื่นใน C # ได้ คำถามของฉันคือคำตอบของคุณมีข้อมูลใหม่ที่ไม่เคยมีมาก่อนหรือไม่ ดูเหมือนว่าข้อมูลทั้งหมดที่คุณโพสต์นั้นมีคนโพสต์ไว้แล้วเมื่อหลายปีก่อน
nvoigt

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