Exportar (0) Imprimir
Expandir todo

Guid (Estructura)

Representa un identificador exclusivo global (GUID).

Espacio de nombres: System
Ensamblado: mscorlib (en mscorlib.dll)

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public struct Guid : IFormattable, IComparable, IComparable<Guid>, 
	IEquatable<Guid>
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class Guid extends ValueType implements IFormattable, IComparable, 
	IComparable<Guid>, IEquatable<Guid>
JScript admite el uso de estructuras, pero no admite la declaración de estructuras nuevas.

Un GUID es un entero de 128 bits (16 bytes) que se puede utilizar en todos los equipos y redes siempre que se requiera un identificador único. Es muy improbable que este identificador se duplique.

En el siguiente ejemplo de código, se muestra la forma de asociar y leer un objeto Guid como un atributo en una interfaz o clase definida por el usuario.

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
    }
}

import System.*;
import System.Runtime.InteropServices.*;

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

// Guid for the coclass MyTestClass.
/** @attribute Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")
 */
public class MyTestClass implements 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()
    {
    } //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(IMyInterface.class.ToType(), 
                  GuidAttribute.class.ToType());

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

        // Using the string to create a guid.
        Guid myGuid1 = 
             new Guid(((GuidAttribute)(iMyInterfaceAttribute)).get_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();
    } //main 
} //MyTestClass 

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

import System;
import System.Runtime.InteropServices;

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

// Guid for the coclass MyTestClass.
public Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8") class MyTestClass implements 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 function MyMethod() {}

    public static function Main()
    {
        // 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.

        var IMyInterfaceAttribute : Attribute = Attribute.GetCustomAttribute(Type.GetType("IMyInterface"), GuidAttribute);
        
        // The Value property of GuidAttribute returns a string. 
        System.Console.WriteLine( "IMyInterface Attribute: " + (GuidAttribute(IMyInterfaceAttribute)).Value );    

        // Using the string to create a guid.
        var myGuid1 : Guid = new Guid( (GuidAttribute(IMyInterfaceAttribute)).Value );
        // Using a byte array to create a guid.
        var myGuid2 : Guid = 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
    }
}

MyTestClass.Main();


Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft