java - variable - visual c# using
importaciones estáticas en c# (4)
A partir de C # 6.0, esto es posible:
using static FileHelper;
// in a member
ExtractSimpleFileName(file)
Sin embargo, las versiones anteriores de C # no tienen importaciones estáticas.
Puedes acercarte con un alias para el tipo.
using FH = namespace.FileHelper;
// in a member
FH.ExtractSimpleFileName(file)
Alternativamente, cambie el método estático a un método de extensión en el tipo; luego podrá llamarlo como:
var value = file.ExtractSimpleFileName();
¿C # tiene características como las importaciones estáticas de Java?
así que en lugar de escribir código como
FileHelper.ExtractSimpleFileName(file)
Yo podria escribir
ExtractSimpleFileName(file)
y el compilador sabría que me refiero al método de FileHelper.
C # 6.0 en Roslyn Platform admite la importación estática . Requiere una declaración como:
using static System.Console;
para que el código se vea como:
using static System.Console;
namespace TestApplication
{
class Program
{
static void Main(string[] args)
{
WriteLine("My test message");
}
}
}
La versión planificada anterior para C # 6.0 tenía importación static
sin palabra clave static
.
Para otras características nuevas en C # 6.0, consulte: Nuevas características de lenguaje en C # 6
El tiempo avanza ... parece que C # podría obtener importaciones estáticas en la próxima versión, consulte http://msdn.microsoft.com/en-us/magazine/dn683793.aspx para obtener una vista previa.
using System;
using System.Console; // using the Console class here
public class Program
{
public static void Main()
{
// Console.WriteLine is called here
WriteLine("Hello world!");
}
}
La documentación oficial para el compilador de C # ''Roslyn'' enumera la característica como ''hecho''
No, tal característica no existe en C #. Debe especificar la clase a la que pertenece el método estático a menos que ya esté dentro de un método de esta misma clase.
En C #, aunque tienes métodos de extensión que imitan esto.