Colección de citas famosas - Slogan de motivación - ¿Qué significa la firma del método en .net?

¿Qué significa la firma del método en .net?

Firma del método C#

Fuente: /kevingao/article/details/7241112

Algunas personas en Internet dicen que la firma del método contiene el tipo de retorno del método, mientras que otros dicen que no. ¿Qué es exactamente una firma de método?

Ayuda en línea de Visual C# 2010, Métodos (Guía de programación de C#) dice esto:

Firma del método

Especificando el nivel de acceso del método (como público o privado), modificadores opcionales (como abstractos o sellados), valor de retorno, nombre y cualquier parámetro del método, un método se puede declarar en una clase o estructura.

Estas partes se denominan colectivamente la "firma" del método.

Nota

A efectos de sobrecarga de métodos, el tipo de retorno del método no forma parte de la firma del método.

Sin embargo, el tipo de retorno es parte de la firma del método al determinar la compatibilidad entre el delegado y el método señalado por el delegado.

Ayuda en línea de Visual C# 2010, Delegados (Guía de programación de C#) dice esto:

Un delegado es un tipo que define una firma de método.

Al crear una instancia de un delegado, puede asociar su instancia con cualquier método con una firma compatible (nota: la firma aquí incluye el tipo de retorno).

Puedes llamar a métodos a través de una instancia delegada.

Los delegados se utilizan para pasar métodos como parámetros a otros métodos.

Los controladores de eventos son métodos llamados a través de delegados.

En el contexto de la sobrecarga de métodos, la firma del método no incluye un valor de retorno.

Pero en el contexto de un delegado, la firma sí incluye el valor de retorno.

En otras palabras, el método y el delegado deben tener el mismo valor de retorno.

Ejemplo:

programa de clase

{

static void Main(string[] args)

{

// Crea una instancia del delegado.

Del handler1 = new Del(DelegateMethod1);

Del handler2 = new Del(DelegateMethod2); //error, método El tipo de retorno es inconsistente con el tipo de retorno del delegado

// Llama al delegado.

handler1("Hello World");

handler2(" Hola mundo" );

Console.ReadKey();

}

// Crea un método para un delegado.

public static void DelegateMethod1 (mensaje de cadena)

{

System.Console.WriteLine(message);

}

cadena estática pública DelegateMethod2 (mensaje de cadena )

{

System.Console.WriteLine(mensaje

return "ok"

}

public delegado void Del(string message);

}

Algunas personas también lo describen de esta manera:

En C#, métodos, instancia Los constructores, indexadores y operadores se caracterizan por sus firmas: la firma de un método consiste en el nombre del método y el tipo (valor, referencia o salida) de cada uno de sus parámetros formales (en orden de izquierda a derecha). Tenga en cuenta que la firma del método no contiene ni un tipo de retorno ni el modificador de parámetros (que está disponible para el parámetro más a la derecha). La firma de un constructor de instancia consta del tipo y clase (valor, referencia o salida) de cada uno de sus parámetros formales (en orden de izquierda a derecha). Específicamente, la firma del constructor de instancia no contiene el modificador de parámetros que se puede especificar para el argumento más a la derecha. La firma del indexador consta del tipo de cada uno de sus parámetros formales (en orden de izquierda a derecha). Específicamente, la firma del indexador no contiene el tipo de elemento. La firma de un operador consta del nombre del operador y el tipo de cada uno de sus parámetros (en orden de izquierda a derecha). En concreto, la firma del operador no incluye el tipo de resultado.

La firma es un mecanismo para sobrecargar miembros de clases, estructuras e interfaces: La sobrecarga de métodos permite que una clase, estructura o interfaz declare múltiples métodos con el mismo nombre, siempre que sus firmas estén en la clase, estructura o interfaz.Es único dentro de la estructura o interfaz.

La sobrecarga de constructores de instancias permite que una clase o estructura declare múltiples constructores de instancias, siempre que sus firmas sean únicas dentro de la clase o estructura. La sobrecarga del indexador permite que una clase, estructura o interfaz declare múltiples indexadores, siempre que sus firmas sean únicas dentro de esa clase, estructura o interfaz. La sobrecarga de operadores permite que una clase o estructura declare múltiples operadores con el mismo nombre, siempre que sus firmas sean únicas dentro de la clase o estructura.

Extensiones: Los objetos tienen sus propios valores (campos en C#), y las clases pueden describir las operaciones y propiedades de objetos de la misma familia. La operación de una clase es un proceso o función, y el método es la implementación específica de la operación de la clase. El nombre de la operación es la firma del método.