有人可以解释为什么result1是false和result2是true?代码如下:
namespace TestCsharp
{
class Program
{
static void Main(string[] args)
{
Order objOrder = new Order(0.0M);
bool result1 = objOrder.PriceNullable.Equals(0);//returns false
bool result2 = objOrder.PriceNullable.Value.Equals(0);// returns true
}
}
public class Order
{
public decimal? PriceNullable { get; set; }
public Order(decimal? priceNullable)
{
PriceNullable = priceNullable;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我们有以下代码:
int i = 1;
Console.WriteLine(i.GetHashCode()); // outputs => 1
Run Code Online (Sandbox Code Playgroud)
除了sbyte和short之外,C#中的所有整数类型都是有意义的.那是:
sbyte i = 1;
Console.WriteLine(i.GetHashCode()); // outputs => 257
Run Code Online (Sandbox Code Playgroud)
为什么是这样?