ในความคิดของฉันมันเป็นตำรวจที่เป็นธรรมที่จะใช้คลาสที่กำหนดภายในสำหรับคลาสที่ใช้สั้น ๆในคลาสเพื่อให้งานเฉพาะ
ตัวอย่างเช่นหากคุณต้องการผูกรายการข้อมูลที่ประกอบด้วยสองคลาสที่ไม่เกี่ยวข้อง:
public class UiLayer
{
public BindLists(List<A> as, List<B> bs)
{
var list = as.ZipWith(bs, (x, y) => new LayerListItem { AnA = x, AB = y});
// do stuff with your new list.
}
private class LayerListItem
{
public A AnA;
public B AB;
}
}
หากคลาสภายในของคุณถูกใช้โดยคลาสอื่นคุณควรแยกคลาสนั้น ถ้าคลาสภายในของคุณมีตรรกะใด ๆ คุณควรแยกมันออก
โดยทั่วไปฉันคิดว่าพวกเขายอดเยี่ยมสำหรับการเสียบรูในวัตถุข้อมูลของคุณ แต่พวกเขาก็ยากที่จะรักษาหากพวกเขาต้องมีตรรกะจริงเพราะคุณจะต้องรู้ว่าจะหาพวกเขาที่ไหนถ้าคุณต้องการเปลี่ยน