1. 程式人生 > >guid/uuid生成方法總結

guid/uuid生成方法總結

部分資料摘抄自 微軟官網 摘抄地址

Guid 結構

表示全域性唯一識別符號 (GUID)。

建構函式

名稱 說明
Guid(Byte[]) 使用指定的位元組陣列初始化 Guid 類的新例項。
Guid(String) 使用指定字串所表示的值初始化 Guid 類的新例項。
Guid(Int32, Int16, Int16, Byte[]) 使用指定的整數和位元組陣列初始化 Guid 類的新例項。
Guid(Int32, Int16, Int16, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte) 使用指定的整數和位元組初始化 Guid 類的新例項。
Guid(UInt32, UInt16, UInt16, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte) 使用指定的無符號整數和位元組初始化 Guid 類的新例項。

方法

名稱 說明
CompareTo(Guid) 將此例項與指定 Guid 物件進行比較並返回對其相對值的指示。
CompareTo(Object) 將此例項與指定物件進行比較並返回一個對二者的相對值的指示。
Equals(Guid) 返回一個值,該值指示此例項和指定的 Guid 物件是否表示相同的值。
Equals(Object) 返回一個值,該值指示此例項是否與指定的物件相等。 (重寫 ValueType.Equals(Object)。)
Finalize 允許物件在“垃圾回收”回收之前嘗試釋放資源並執行其他清理操作。 (繼承自 Object。)
GetHashCode 返回此例項的雜湊程式碼。 (重寫 ValueType.GetHashCode()。)
GetType 獲取當前例項的 Type。 (繼承自 Object。)
MemberwiseClone 建立當前 Object 的淺表副本。 (繼承自 Object。)
NewGuid 初始化 Guid 類的新例項。
Parse 將 GUID 的字串表示形式轉換為等效的 Guid 結構。
ParseExact 將 GUID 的字串表示形式轉換為等效的 Guid 結構,前提是該字串採用的是指定格式。
ToByteArray 返回包含此例項的值的 16 元素位元組陣列。
ToString() 返回登錄檔格式的此例項值的字串表示形式。 (重寫 ValueType.ToString()。)
ToString(String) 根據所提供的格式說明符,返回此 Guid 例項值的字串表示形式。
ToString(String, IFormatProvider) 根據所提供的格式說明符和區域性特定的格式資訊,返回 Guid 類的此例項值的字串表示形式。
TryParse 將 GUID 的字串表示形式轉換為等效的 Guid 結構。
TryParseExact 將 GUID 的字串表示形式轉換為等效的 Guid 結構,前提是該字串採用的是指定格式。

運算子

名稱 說明
Equality 指示兩個指定的 Guid 物件的值是否相等。
Inequality 指示兩個指定的 Guid 物件的值是否不相等。

欄位

名稱 說明
Empty Guid 類的只讀例項,其值保證均為零。

示例demo

using System;
using System.Runtime.InteropServices;

// Guid for the interface IMyInterface.
[Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4")]
interface IMyInterface
{
    void MyMethod();
}

// Guid for the coclass MyTestClass.
[Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")]
public class MyTestClass : IMyInterface
{
    // Run regasm on this assembly to create .reg and .tlb files.
    // Reg file can be used to register this coclass in the registry.
    // Tlb file will be used to do interop.

    public void MyMethod() {}

    public static void Main( string []args )
    {
        // Example addresses the following in System.Runtime.InterOpServices.GuidAttribute.
        // How to specify the attribute on interface/coclass.
        // Retrieve the GuidAttribute from an interface/coclass.
        // Value property on GuidAttribute class.

        // Example addresses the following in System.Guid.
        // Constructor Guid(string).
        // Constructor Guid(ByteArray).
        // Equals.
        // Operator ==.
        // CompareTo.

        Attribute IMyInterfaceAttribute = Attribute.GetCustomAttribute( typeof( IMyInterface ), typeof( GuidAttribute ) );

        // The Value property of GuidAttribute returns a string. 
        System.Console.WriteLine( "IMyInterface Attribute: " + ((GuidAttribute)IMyInterfaceAttribute).Value );    

        // Using the string to create a guid.
        Guid myGuid1 = new Guid( ((GuidAttribute)IMyInterfaceAttribute).Value );
        // Using a byte array to create a guid.
        Guid myGuid2 = new Guid ( myGuid1.ToByteArray() );

        // Equals is overridden and so value comparison is done though references are different.
        if ( myGuid1.Equals( myGuid2 ) )
            System.Console.WriteLine( "myGuid1 equals myGuid2" );
        else
            System.Console.WriteLine( "myGuid1 not equals myGuid2" );

        // Equality operator can also be used to determine if two guids have same value.
        if ( myGuid1 == myGuid2 )
            System.Console.WriteLine( "myGuid1 == myGuid2" );
        else
            System.Console.WriteLine( "myGuid1 != myGuid2" );

        // CompareTo returns 0 if the guids have same value.
        if ( myGuid1.CompareTo( myGuid2 ) == 0 )
            System.Console.WriteLine( "myGuid1 compares to myGuid2" );
        else
            System.Console.WriteLine( "myGuid1 does not compare to myGuid2" );

        System.Console.ReadLine();

        //Output.
        //IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4
        //myGuid1 equals myGuid2
        //myGuid1 == myGuid2
        //myGuid1 compares to myGuid2
    }
}

常用方法

  • Guid.NewGuid建立一個新的 guid,也叫uuid

// This code example demonstrates the Guid.NewGuid() method.

using System;

class Sample 
{
    public static void Main() 
    {
    Guid g;
// Create and display the value of two GUIDs.
    g = Guid.NewGuid();
    Console.WriteLine(g);
    Console.WriteLine(Guid.NewGuid());
    }
}

/*
This code example produces the following results:

0f8fad5b-d9cb-469f-a165-70867728950e
7c9e6679-7425-40de-944b-e07fc1f90ae7

*/

其他常見用法說明

string str = System.Guid.NewGuid().ToString("N") + "|"

+ System.Guid.NewGuid().ToString("D") + "|"

+ System.Guid.NewGuid().ToString("B") + "|"

+ System.Guid.NewGuid().ToString("P");
        Response.Write(str);

  • 返回的結果:

ece4f4a60b764339b94a07c84e338a27|
5bf99df1-dc49-4023-a34a-7bd80a42d6bb|

{2280f8d7-fd18-4c72-a9ab-405de3fcfbc9}|

(25e6e09f-fb66-4cab-b4cd-bfb429566549)

說明符 返回值的格式 示例格式
N 32 位: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
D 由連字元分隔的 32 位數字: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
B 括在大括號中、由連字元分隔的 32 位數字: {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
P 括在圓括號中、由連字元分隔的 32 位數字: (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

相關推薦

guid/uuid生成方法總結

部分資料摘抄自 微軟官網 摘抄地址 Guid 結構 表示全域性唯一識別符號 (GUID)。 建構函式 名稱 說明 Guid(Byte[]) 使用指定的位元組陣列初始化 Guid 類的新例項。 Guid(S

JAVA生成UUID方法總結

    前言        我們開發的時候,資料庫表總會有一個主鍵,以前我們可能會使用自增的數字作為主鍵。這樣做確實查詢的時候比較快,但是在做系統整合或者資料遷移的的時候就麻煩了。這是id就有可能重複了。那麼有什麼比較好的方法解決這一問題呢?於是jdk1.5出了UUID這個類

Javascript生成全域性唯一識別符號(GUID,UUID)的方法

全域性唯一識別符號(GUID,Globally Unique Identifier)也稱作 UUID(Universally Unique IDentifier) 。 GUID是一種由演算法生成的二進位制長度為128位的數字識別符號。GUID 的格式為“xxxxxxxx-xxxx-xxxx-xx

C++生成隨機數的方法總結

oca cnblogs nbsp seconds wmi iostream 代碼 cin std 網上有很多使用C++生成隨機數的文章,其原理不再贅述,這裏貼出windows系統上生成各種隨機數的代碼,方便查用。 1 #include <iostream>

android studio 利用gradle和cmakelist生成c++靜態庫.a的方法總結

nts 需求 roi ++ build mat 頭文件 方法 ext android生成靜態庫的方法有兩種,一種是編輯android.mk文件,一種是編輯cmakelist文件。前一種沒做研究,因為用的ide是android studio,所以直接利用gradle調用cma

給新生成的節點(動態生成節點)綁定事件方法總結

pos 但是 get add 動態添加 app 原生 lis father 第一種 jquery寫法 $(‘.father‘).on(‘click‘,‘,child‘,function(){}) $(document).on(‘click‘,‘,child‘,funct

GUID在安全中作用及生成方法

十六 十六進制 隨筆 function func 流行 win 數據庫 改進 參考改進於http://blog.csdn.net/jcicheng/article/details/743934 全球唯一標識符 (GUID) 是一個字母數字標識符,用於指示產品的唯一性安裝

JS生成 UUID方法

pan cti func def 生成 floor lock sub The 方法一、 function uuid() { var s = []; var hexDigits = "0123456789abcdef"; for (var i = 0

生成下拉框的幾種方法總結——數據來源:枚舉

ati state 數據集 equal type() tty each 其中 sele 上節介紹數據來源是數據庫,這節介紹對枚舉進行數據獲取,形成下拉列表。 使用場景:某些狀態值獲取等,一般是數據量小,不需要在數據庫中進行維護的數據集 1、前提要有枚舉數據

Javascript 生成全域性唯一識別符號 (GUID,UUID

全域性唯一識別符號(GUID,Globally Unique Identifier)也稱作 UUID(Universally Unique IDentifier) 。 GUID是一種由演算法生成的二進位制長度為128位的數字識別符號。GUID 的格式為“xxxxxxxx-xxxx-xxxx-xxxx-xxx

java生成隨機密碼(隨機長度,指定長度)方法總結

本文章給大家總結了在java中生成隨機密碼的幾種函式,一種是隨機長度密碼,另一種是使用者固定長度密碼,下面我來給各位介紹。 Java生成隨機長度密碼。 /** * 生成隨機密碼 * * @pa

Android--生成縮圖------方法總結

在Android中對大圖片進行縮放真的很不盡如人意,不知道是不是我的方法不對。下面我列出3種對圖片縮放的方法,並給出相應速度。請高人指教。 第一種是BitmapFactory和BitmapFactory.Options。 首先,BitmapFactory.Opti

android studio library生成jar包和aar的方法總結

compile files('libs/mytool_1.0.jar') 然後點選sync Now  等待完成就可以了。 ------------------------------------------------------------------------------------------

MATLAB中生成隨機數方法總結

好久沒用MATLAB了,今天在利用MATLAB進行資料處理時,突然發現自己忘記了該如何產生自己需要的隨機數形式,於是又查了一通資料。現對其進行一個簡單的總結,供自己和大家以後參考: 1. randi

linux生成隨機串方法總結

date date +%s是獲取當前時間距離1970-01-01 00:00:00 UTC的時間差 [[email protected] ~]$ date +%s 1532874352

javascript 生成32位UUID方法

var createUUID = (function (uuidRegEx, uuidReplacer) { return function () { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(uuidR

Android開發根據Json直接生成Java Bean方法總結

在開發過程中拿到從伺服器請求的json字串需要解析成Bean物件方便我們使用,自己寫bean又太麻煩 經過這麼長時間的Android開發,我收集了三種比較常用的通過json自動生成Bean物件的方法:

各種OS中生成UUID方法

開發人員或多或少都應該知道UUID或GUID,這是摘自維基百科的一段描述。 通用唯一識別碼 (Universally Unique Identifier, UUID) 是一個軟體建構的標準,亦為自由軟體基金會 (Open Software Foundation, OSF) 的組織在分散式計算環境 (Dist

備忘:生成GUID(UUID)

不過還是小小的測試一下: Java生成GUID: import java.util.UUID; public class TestGUID { public static void main(String[] args) { UUID uuid = UUID.r

javascript字符串方法總結

大小寫 comm 其他 tolower 匹配 一行 ror 運算 轉換 一、單引號字符串內部可以使用雙引號,雙引號字符串內部也可以使用單引號 "hello ‘world‘" ‘welcome "to" js‘ 二、多行和轉義 如果要在單引號字符串的內部,使用單引號(或者