比较器有变量类型吗?
Is there a variable type for comparators?
是否有用于比较器的变量类型(类似于 string
、int
或 bool
)? (==
, !=
, <=
, >=
, >
, <
)如果不是,C#如何使用它们?
我可以用
int integerVariable = 0;
但是有什么我可以用来做的事情
comp comparatorVariable = ==;
?
您列出的各种运算符没有类型号。 Objects 有类型。您列出了运算符,它们本身不是 objects,因此没有类型。如果您对 C# 语言如何使用运算符感兴趣,可以查看语言规范; C# 5.0 规范的第 7.3 节标题为 "Operators",其中包含有关 C# 如何处理运算符的信息。
C# 提供了一个名为 IComparable<T>
的通用接口。
这个接口只有一个方法:int CompareTo<T>
public interface IComparable<in T>
{
int CompareTo(T other);
}
要实现比较运算符(==、!=、<=、>=、>、<),需要在继承IComparable
的class上实现这些运算符。
日期时间“==”运算符可能如下所示。
public static bool operator ==(DateTime d1, DateTime d2)
{
return d1.CompareTo(d2) == 0;
}
是否有用于比较器的变量类型(类似于 string
、int
或 bool
)? (==
, !=
, <=
, >=
, >
, <
)如果不是,C#如何使用它们?
我可以用
int integerVariable = 0;
但是有什么我可以用来做的事情
comp comparatorVariable = ==;
?
您列出的各种运算符没有类型号。 Objects 有类型。您列出了运算符,它们本身不是 objects,因此没有类型。如果您对 C# 语言如何使用运算符感兴趣,可以查看语言规范; C# 5.0 规范的第 7.3 节标题为 "Operators",其中包含有关 C# 如何处理运算符的信息。
C# 提供了一个名为 IComparable<T>
的通用接口。
这个接口只有一个方法:int CompareTo<T>
public interface IComparable<in T>
{
int CompareTo(T other);
}
要实现比较运算符(==、!=、<=、>=、>、<),需要在继承IComparable
的class上实现这些运算符。
日期时间“==”运算符可能如下所示。
public static bool operator ==(DateTime d1, DateTime d2)
{
return d1.CompareTo(d2) == 0;
}