nameof运算符先给出CSDN的官方定义:
nemeof运算符获取变量、类型或成员的名称作为字符串常量。
Console.WriteLine(nameof(System.Collections.Generic)); // output: Generic
Console.WriteLine(nameof(List<int>)); // output: List
Console.WriteLine(nameof(List<int>.Count)); // output: Count
Console.WriteLine(nameof(List<int>.Add)); // output: Add
var numbers = new List<int> { 1, 2, 3 };
Console.WriteLine(nameof(numbers)); // output: numbers
Console.WriteLine(nameof(numbers.Count)); // output: Count
Console.WriteLine(nameof(numbers.Add)); // output: Add
常见的引用场景,在抛参数异常的时候
if (func == null)
throw new ArgumentNullException(nameof(func));
class NameofExpressions
{
//旧方法:当参数变化的时候,被引用的地方需要同步修改
public void OldMethod(int account1)
{
if(account1 < 100)
{
throw new ArgumentException("参数account1值不能小于100");
}
else
{
//其他操作
}
}
//新方法:使用nameof当参数变化时会在引用的地方同步变化,避免硬编码
//nameof里面可以是:类名,方法名,参数名,属性名
public void NewMethod(int account1)
{
if(account1 < 100)
{
throw new ArgumentException($"参数{nameof(account1)}值不能小于100");
}
else
{
//其他操作
}
}
原文链接:https://blog.csdn.net/Tiger_shl/article/details/89981115