ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Guid结构

Guid结构

原创 Linux操作系统 作者:wisdomone1 时间:2011-09-15 15:58:12 0 删除 编辑
 闲言不叙,上官方猛料如下述:
http://msdn.microsoft.com/zh-cn/library/system.guid%28v=VS.80%29.aspx

小结:
  guid全局唯一标识符,16个字节,128位之长.



using System;
using System.Runtime.InteropServices;

// Guid for the interface IMyInterface.
//[Guid]("GUID值") 此为接口imyinterface的guid值
[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. // perator ==. // CompareTo. //attribute类对象
//attribute zxy=attribute,getcustomattribute(typeof(类型名称),typeof(guidatrribute))
 Attribute IMyInterfaceAttribute = Attribute.GetCustomAttribute( typeof( IMyInterface ), typeof( GuidAttribute ) ); // The Value property of GuidAttribute returns a string. //显示接口imyinterface的guid值
//(guidattribute)(imyinterfaceattribute).value
System.Console.WriteLine( "IMyInterface Attribute: " + ((GuidAttribute)IMyInterfaceAttribute).Value ); // Using the string to create a guid.
//基于以上接口imyinterface的guid创建一个guid对象
guid myguid=new guid((guidattribute)imyinterfaceattribute).value)
Guid myGuid1 = new Guid( ((GuidAttribute)IMyInterfaceAttribute).Value ); // Using a byte array to create a guid. Guid myGuid2 = new Guid ( myGuid1.ToByteArray() );
//下述不再细述,主要使用equals及==和compare,compareto相关方法比较上面
//新建的两个guid对象的值
 // 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 } }


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-707522/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2188
  • 访问量
    12182732