#define PI
using System;
namespace PreprocessorDAppl
{
class Program
{
static void Main(string[] args)
{
#if (PI)
Console.WriteLine("PI is defined");
#else
Console.WriteLine("PI is not defined");
#endif
Console.ReadKey();
}
}
}
PI is defined
C#中的$使用
string.Format的语法糖 中使用 $ :用于变量的定义
int j = 1;
Console.WriteLine(string.Format("j的值是:{0}",j));
Console.WriteLine($"j的值是:{j}");
Console.WriteLine("j的值是:{0}", j);
/*
E is T --> E 是返回一个值的表达式,T 是类型或类型参数的名称。
*///is 运算符将考虑装箱和取消装箱转换,但不会考虑数值转换:int i =27;
Console.WriteLine(i is System.IFormattable);// output: Trueobject iBoxed = i;
Console.WriteLine(iBoxed isint);// output: True
Console.WriteLine(iBoxed islong);// output: False
/*
E is T v
E 为返回值的表达式,T 为类型或类型参数的名称,v 为类型 T 的新局部变量。
如果 E 的结果为非 null 且可以通过引用、装箱或取消装箱转换来转换为 T,
则 E is T v 表达式将返回 true,E 结果转换后的值将分配给变量 v。
*///演示代码int i =23;object iBoxed = i;int? jNullable =7;if(iBoxed isint a && jNullable isint b){
Console.WriteLine(a + b);// output 30}
as运算符: 用于将表达式显示转换为给定类型(如果其运行时类型与该类型兼容)
/*
E as T
E 为返回值的表达式,T 为类型或类型参数的名称,生成相同的结果
*//*
E is T ? (T)(E) : (T)null
*/