Reader Level:
ARTICLE

GUIDs in C# and .NET

Posted by Prasoon Articles | Learn .NET June 18, 2009
This article gives a basic understanding of GUIDs in .NET Framework.
  • 2
  • 0
  • 67875

GUID stands for Global Unique Identifier.

A GUID is a 128-bit integer (16 bytes) that you can use across all computers and networks wherever a unique identifier is required.


Here are some frequently asked questions about GUIDs.


A. How many GUIDs in Microsoft Windows can one computer generate without rolling over or running out?

Answer: Without getting into detail, let me tell you there are 2^122 or 5,316,911,983,139,663,491,615,228,241,121,400,000 possible combination.

Reason is beyond the scope of this article.


B. Which class in .NET Framework is used to generate Guid?

Answer: System.GUID class represents a GUID in .NET Framework.


C. How can we generate GUID with SQL Server?

Answer: We can generate GUID in Sql Server with the help of NEWID() function

D. Which namespace must be referenced to utilize the GUID attribute. ?

Answer:  System.Runtime.InteropServices namespace must be referenced to utilize the GUID attribute.

This can be done as shown in following code:-


using System;

using System.Runtime.InteropServices;

namespace TESTGUID {
[Guid("9245fe4a-d402-451c-b9ed-9c1a04247482")]

class Example {
//Your Implementation
                           }           
                      }


Generating GUID in .NET Framework using C#

We can generate GUID by calling following code snippet. As you can see from this code, we use Guid.NewGuid() method to generate a new GUID in C#.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication5
{

    class Program
    {
        static int Main(string[] args)
        {
                Guid obj = Guid.NewGuid();                          

                Console.WriteLine("New Guid is " + obj.ToString());
                Console.ReadLine();
            return -1;
        }
    }
}

Note that above in above code we have used the NewGuid Method which will create new GUID .

A common mistake done by C# developers is to create an object of GUID and trying to print that.

The following code snippet reflects that mistake.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication5
{
    class Program
    {
        static int Main(string[] args)
        {
                Guid obj = new Guid();
Console.WriteLine("New Guid is " + obj.ToString());
                Console.ReadLine();
                return -1;
        }
    }
}


The output of above console program will be always be 16 byte with all 0 .

Everytime same thing will come.

So while generating GUID use NewGuid Method.


Also note that Guid only contains alphanumeric characters and none of non-alphanumeric character will be seen in GUID except "-";

Hope it helps.

COMMENT USING

Trending up