2012-07-23 10 views
11

Estaba trabajando en la refacturación de algunos códigos C# con ReSharper. Una de las cosas con las que me he encontrado es un operador de C# con el que no estoy familiarizado.Mystical "F colon" en C#

En mi código, yo tenía esta

Mathf.FloorToInt(NumRows/2) 

donde NumRows es un entero. ReSharper sugiere que debería cambiarlo a

Mathf.FloorToInt(f: NumRows/2) 

Estoy bastante seguro de que es un poco de f: bandera que dice que para emitir NumRows como un flotador, pero no puedo encontrar ninguna documentación para f: en línea. ¿Puede alguien explicar qué es exactamente f: o vincularme a una página de MSDN al respecto?

(Aunque tengo una buena idea de lo f: no, es difícil buscar el Internet para dos puntos, y me gustaría saber lo que hace antes de usarlo)

Actualización 1: Independientemente de lo que estoy tratando de hacer, estoy interesado en la sintaxis y coma f

actualización 2: Resulta que era en realidad visual que sugiere que podría añadir el nombre de argumento 'f' Estudio no ReSharper, pero eso no cambia la respuesta correcta.

+0

es R # sugiriendo que debería * * (por ejemplo advertencia) o que pudiera * * (por ejemplo, información/Indirecta)? – Lucero

+0

Actualicé la pregunta, en realidad era una información sobre herramientas de Visual Studio y no una sugerencia de R # er como pensé. (demasiadas cosas apareciendo ...) – Perchik

Respuesta

20

Es un named parameter. Mire la definición de Mathf.FloorToInt, tendrá un parámetro llamado f.

Resharper indica que el código podría hacerse más legible mediante el uso de un parámetro con nombre en este caso.

+0

Gracias, eso es exactamente lo que necesitaba. Ni siquiera me paré a pensar que podría haber sido específico para FloorToInt. – Perchik

+0

No se recomienda publicar enlaces que contengan la respuesta sin ampliarla, ya que el contenido del enlace está sujeto a modificaciones y eliminaciones. – Sturm

+3

@NathanMann, si bien es cierto que los enlaces pueden cambiar, la descripción dada aquí ("parámetro nombrado") es suficiente para encontrarla fácilmente en Google nuevamente si se volviera inválida (simplemente agregue "C#" a ella y obtendrá el información que necesita). A veces, incluso las respuestas correctas son cortas. – Lucero

9

En C# 4.0, puede cambiar las expresiones de los parámetros en la invocación del método.

Cuando solo hay un parámetro, no ayuda mucho, si es que lo hace: no hay duda de lo que representa la expresión, si solo hay un parámetro. Sin embargo, con múltiples parámetros, la característica se vuelve mucho más útil: puede emparejar nombres de parámetros con expresiones que representan sus valores y pasar parámetros en el orden que desee. Los lectores de su programa no necesitarían consultar la firma del método para comprender qué expresión representa qué parámetro.

private static void MyMethod(int a, int b, int c) { 
    Console.WriteLine("{0} {1} {2}", a, b, c); 
} 

public static void Main(string[] args) { 
    MyMethod(1, 2, 3); 
    MyMethod(c:1, a:2, b:3); 
} 

Esto imprime

1 2 3 
2 3 1