ฉันต้องการสร้างนามแฝงสำหรับชื่อคลาส ไวยากรณ์ต่อไปนี้จะสมบูรณ์แบบ:
public class LongClassNameOrOneThatContainsVersionsOrDomainSpecificName
{
...
}
public class MyName = LongClassNameOrOneThatContainsVersionOrDomainSpecificName;
แต่จะไม่รวบรวม
ตัวอย่าง
หมายเหตุตัวอย่างนี้จัดทำขึ้นเพื่อความสะดวกเท่านั้น อย่าพยายามแก้ปัญหานี้โดยแนะนำให้เปลี่ยนการออกแบบของระบบทั้งหมด การมีอยู่หรือขาดหายไปของตัวอย่างนี้ไม่ได้ทำให้คำถามเดิมเปลี่ยนไป
รหัสที่มีอยู่บางส่วนขึ้นอยู่กับการมีอยู่ของคลาสคงที่:
public static class ColorScheme
{
...
}
โทนสีนี้เป็นโทนสีของ Outlook 2003 ฉันต้องการแนะนำโครงร่างสีของ Outlook 2007 ในขณะที่ยังคงรักษารูปแบบสีของ Outlook 2003 ไว้:
public static class Outlook2003ColorScheme
{
...
}
public static class Outlook2007ColorScheme
{
...
}
ColorScheme
แต่ฉันยังคงต้องเผชิญกับความจริงที่ว่ารหัสจะขึ้นอยู่กับการปรากฏตัวของระดับคงที่ที่เรียกว่า ความคิดแรกของฉันคือการสร้างColorScheme
คลาสที่ฉันจะสืบทอดจากอย่างใดอย่างหนึ่งOutlook2003
หรือOutlook2007
:
public static class ColorScheme : Outlook2007ColorScheme
{
}
แต่คุณไม่สามารถสืบทอดจากคลาสคงที่
ความคิดต่อไปของฉันคือการสร้างColorScheme
คลาสแบบคงที่แต่สร้างOutlook2003ColorScheme
และOutlook2007ColorScheme
คลาสไม่คงที่ จากนั้นตัวแปรคงที่ในColorScheme
คลาสคงที่สามารถชี้ไปที่โครงร่างสี "จริง":
public static class ColorScheme
{
private static CustomColorScheme = new Outlook2007ColorScheme();
...
}
private class CustomColorScheme
{
...
}
private class Outlook2008ColorScheme : CustomColorScheme
{
...
}
private class Outlook2003ColorScheme : CustomColorScheme
{
...
}
แต่นั่นทำให้ฉันต้องแปลงคลาสที่ประกอบไปด้วยสีคงที่แบบอ่านอย่างเดียวเป็นคุณสมบัติที่เขียนทับได้จากนั้นColorScheme
คลาสของฉันจะต้องมีตัวรับคุณสมบัติที่แตกต่างกัน 30 ตัวที่โยนลงไปในวัตถุที่มีอยู่
นั่นเป็นเพียงการพิมพ์มากเกินไป
ดังนั้นความคิดต่อไปของฉันคือการตั้งชื่อแทนชั้น:
public static ColorScheme = Outlook2007ColorScheme;
แต่ไม่ได้รวบรวม
ฉันจะเปลี่ยนชื่อคลาสแบบคงที่เป็นชื่ออื่นได้อย่างไร
อัปเดต:ใครช่วยเพิ่มคำตอบ"คุณไม่สามารถทำได้ใน C #"เพื่อให้ฉันสามารถทำเครื่องหมายว่าเป็นคำตอบที่ยอมรับได้ ใครก็ตามที่ต้องการคำตอบสำหรับคำถามเดียวกันนี้จะพบคำถามนี้คำตอบที่ยอมรับและวิธีแก้ปัญหาจำนวนหนึ่งที่อาจเป็นประโยชน์หรือไม่ก็ได้
ฉันแค่อยากจะปิดคำถามนี้