Tôi đã làm một thử nghiệm như dưới đây ↓Có sự khác biệt giữa khách hàng Loại hình Enum Loại và hệ thống Enum
1) Tạo một enum khách hàng (sao chép từ DAYOFWEEK)
[Serializable]
public enum Tester
{
// 概要:
// Indicates Sunday.
Sunday = 0,
//
// 概要:
// Indicates Monday.
Monday = 1,
//
// 概要:
// Indicates Tuesday.
Tuesday = 2,
//
// 概要:
// Indicates Wednesday.
Wednesday = 3,
//
// 概要:
// Indicates Thursday.
Thursday = 4,
//
// 概要:
// Indicates Friday.
Friday = 5,
//
// 概要:
// Indicates Saturday.
Saturday = 6,
}
2) Tạo hai thử nghiệm phương pháp ...
static void TestEnumToString()
{
var t = Tester.Sunday;
Enumerable.Range(0, 1000000).ToList().ForEach(i => t.ToString());
}
static void DayOfWeekEnumToString()
{
var t = DayOfWeek.Sunday;
Enumerable.Range(0, 1000000).ToList().ForEach(i => t.ToString());
}
3) phương thức Main
static void Main()
{
Stopwatch sw = new Stopwatch();
sw.Start();
TestEnumToString();
sw.Stop();
Console.WriteLine("Tester:" + sw.ElapsedMilliseconds);
sw = new Stopwatch();
sw.Start();
DayOfWeekEnumToString();
sw.Stop();
Console.WriteLine("DayOfWeek:" + sw.ElapsedMilliseconds);
Console.ReadKey();
}
4) Kết quả:
Tester : 3164ms
DayOfWeek : 7032ms
Tôi thật sự không biết tại sao các loại hệ thống enum là chậm hơn so với các loại enum khách hàng .... Ai có thể cho tôi biết tại sao? Cảm ơn bạn ...
CẬP NHẬT CHỈNH SỬA: Thêm [ComVisible (true)] vào enum.
[ComVisible(true)]
[Serializable]
public enum Tester
{
Sunday = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
}
Kết quả:
Tester : 5018ms
DayOfWeek : 7032ms
Các hệ thống kiểu enum vẫn chậm hơn so với các loại enum khách hàng ...
Chỉ cần chụp trong bóng tối, nhưng điều đó enum (DayOfWeek) có thể có xử lý Văn hóa đặc biệt. – leppie