列出不同類型整數的 .NET類型
static void Main(string[] args)
{
sbyte one = default(sbyte);
byte two = default(byte);
short three = default(short);
ushort four = default(ushort);
int five = default(int);
uint six = default(uint);
long seven = default(long);
ulong eight = default(ulong);
Console.WriteLine("列出不同類型整數的 .NET類型");
Console.WriteLine("C#\\\\t .NET類型");
Console.WriteLine($"sbyte \\\\t= { one.GetType()}");
Console.WriteLine($"byte \\\\t= {two.GetType()}");
Console.WriteLine($"short \\\\t= {three.GetType()}");
Console.WriteLine($"ushort \\\\t= {four.GetType()}");
Console.WriteLine($"int \\\\t= {five.GetType()}");
Console.WriteLine($"uint \\\\t= {six.GetType()}");
Console.WriteLine($"long \\\\t= {seven.GetType()}");
Console.WriteLine($"ulong \\\\t= {eight.GetType()}");
}
問題 1:如何簡化列出不同類型整數的 .NET類型的代碼?
解答:透過使用數組和迴圈簡化代碼。
using System;
class Program
{
static void Main(string[] args)
{
var types = new (string Name, Type Type)[]
{
("sbyte", default(sbyte).GetType()),
("byte", default(byte).GetType()),
("short", default(short).GetType()),
("ushort", default(ushort).GetType()),
("int", default(int).GetType()),
("uint", default(uint).GetType()),
("long", default(long).GetType()),
("ulong", default(ulong).GetType())
};
Console.WriteLine("列出不同類型整數的 .NET類型");
Console.WriteLine("C#\\\\t .NET類型");
foreach (var (name, type) in types)
{
Console.WriteLine($"{name} \\\\t= {type}");
}
}
}
問題 2:為什麼可以直接使用 default(sbyte).GetType()
,是否 GetType()
也算是一種變數?
default(sbyte)
獲得 sbyte
的預設值(0
)。.GetType()
是方法調用,用於獲取物件的類型。GetType()
獲得其類型信息。問題 3:陣列是不是只能放變數?如果可以放方法調用的結果,怎麼解釋?
static void Main(string[] args)
{
Console.WriteLine("列出不同類型浮點數的 .NET類型");
var GetNumType = new(string name,Type NumType)[]{
("float",default(float).GetType()),
("double",default(double).GetType()),
("decimal",default(decimal).GetType()),
};
Console.WriteLine("C#\\t .NET類型");
foreach (var (name,NumType) in GetNumType)
{
Console.WriteLine($"{name} \\t= {NumType}");
}
}
列出不同類型浮點數的 .NET 類型
Console.WriteLine("列出不同類型浮點數的 .NET 類型");
// 儲存浮點數類型及其對應的 .NET 類型
var numTypes = new (string Name, Type NumType)[] {
("float", default(float).GetType()),
("double", default(double).GetType()),
("decimal", default(decimal).GetType()),
};
// 輸出標題
Console.WriteLine("C# 類型\\t .NET 類型");
foreach (var (name, numType) in numTypes)
{
// 格式化輸出以保持對齊
Console.WriteLine($"{name,-10} = {numType}");
}