Visual Studio: ฉันจะแสดงคลาสทั้งหมดที่สืบทอดจากคลาสพื้นฐานได้อย่างไร


139

ใน Visual Studio ฉันจะแสดงคลาสทั้งหมดที่สืบทอดจากคลาสพื้นฐานได้อย่างไร

ตัวอย่างเช่นใน ASP.NET MVC มีหลายประเภท ' ActionResult ' และพวกมันสืบทอดมาจาก / นำคลาสพื้นฐานActionResultมาใช้

ดูเหมือนว่าหากคุณเพิ่ง 'รู้' ViewและJsonเป็นActionResultประเภทที่ถูกต้องไม่มีวิธีที่คุณสามารถค้นหาข้อมูลนี้ได้อย่างง่ายดาย

โปรดพิสูจน์ว่าฉันผิด

มีบางสิ่งในเบราว์เซอร์วัตถุที่ทำให้ง่ายต่อการค้นหา

ฉันยิ่งขอคำแนะนำเกี่ยวกับเครื่องมือที่อยู่นอก Visual Studio เพื่อค้นหาข้อมูลเกี่ยวกับคลาสต่างๆ ตัวอย่างเช่นมีบางสิ่งใน Resharper ที่จะช่วยฉันได้หรือไม่


2
ด้วย Visual C # 2010 Express ฉันค้นหาโซลูชันสำหรับ ": ActionResult" ไม่เหมาะ แต่ดีกว่าไม่มีอะไร
yoyo

2
ฉันคิดว่าคุณเข้าใจคำถามของฉันผิด JsonResult (อ้างอิงที่นี่: msdn.microsoft.com/en-us/library/system.web.mvc.jsonresult.aspx ) สืบทอดมาจาก ActionResult มีคลาสอื่นอีกหลายคลาสที่สืบทอดจาก ActionResult วิธีง่ายๆในการดูชั้นเรียนทั้งหมดที่สืบทอดจาก ActionResult คืออะไร?
Dan Esparza

3
ในกรณีนี้รหัสที่ฉันใช้ไม่ใช่รหัสที่ปรากฏโดยตรงในโซลูชันของฉัน เป็นคลาสเฟรมเวิร์ก MVC ในชุดประกอบอื่น การค้นหา ": ActionResult" จะไม่ทำงานกับรหัสที่ฉันใช้จากชุดประกอบ
Dan Esparza

คำตอบ:


50

แน่นอนว่าResharperสามารถทำได้ และอีกมากมาย

เพียงคลิกขวาที่ชื่อประเภทในสถานที่ใดก็ได้และเลือก "ไปที่ผู้สืบทอด" ในเมนูบริบท "Go To Inheritor" ยังสามารถใช้กับวิธีการนำทางไปสู่การแทนที่และการใช้งานของวิธีการอินเทอร์เฟซ สำหรับอินเทอร์เฟซคุณสามารถโทรหา "ค้นหาขั้นสูงได้อีกครั้ง" เพียงคลิกขวา) ซึ่งจะหาส่วนขยายและการปรับใช้ทั้งหมด สำหรับประเภท - ประเภทที่ได้รับ และคุณสมบัติที่ฉันโปรดปราน - คลิกด้วยการกดปุ่มควบคุมบนประเภท / วิธีการใดก็ได้เพื่อนำทางไปยังการประกาศ

ฉันคิดว่ามันเป็นเครื่องมือที่ต้องมีสำหรับนักพัฒนา. net


ใน Resharper 9.2 บนทุกประเภทในซอร์สโค้ด rt-click "ค้นหาการใช้งานขั้นสูง" เลือก Find = "Derived" และ Scope = "Solutions and Libraries"
ตัวอย่างเช่นเมื่อต้องการค้นหาผู้สืบทอดทั้งหมด (ทั้งในไลบรารีและรหัสของคุณ) ของคลาสพื้นฐานใน DLL ที่รวมไว้จากผู้จำหน่ายใด ๆ ให้ประกาศตัวแปรในรหัสของคุณด้วยคลาสพื้นฐานนั้น จากนั้นคลิกขวาที่ชื่อคลาสพื้นฐานที่คุณเพิ่งพิมพ์


6
น่าละอาย. นักพัฒนา Java ที่ใช้ Eclipse ฟรีมีฟังก์ชันนี้ให้ใช้งานได้ทันที ใน Resharper + VS2015 ของฉันฉันเห็น "go to Implementation" มากกว่า "Go To Inheritor"
ขั้วโลกเหนือ

1
แต่นี่ไม่ให้ชั้นเรียนที่ฉันอยู่ตรงกลาง แต่มี แต่ใบไม้เท่านั้น CTRL + ALT + B จะให้คำตอบ
ขั้วโลกเหนือ

2
Visual Studio 6 มีไว้ในโครงการ C ++ เกือบ 20 ปีที่แล้ว เบราว์เซอร์วัตถุและแผนภาพคลาสไม่ได้ให้ความสามารถน้ำหนักเบาเหมือนกันในการพลิกต้นไม้ที่รับมรดก ฉันเพิ่งพบว่า Eclipse มีรุ่นที่ยอดเยี่ยมนี้ด้วย Java อย่างน้อย มาที่ MS โทรหาหนึ่งในนักพัฒนาอดีตของคุณและถามว่ามันคืออะไรที่คุณมี แต่แพ้ .... ได้รับมันต้องมีโครงการทั้งหมดเพื่อให้มีการสร้าง BSC เรียกดูข้อมูลหลังจากรวบรวมตัวเลือก แต่ก็ใช้ได้ มันเป็นจริง
ฟิลิปเบ็ค

150

สำหรับ VS2012

  1. นำทางไปยังไฟล์ในตัวสำรวจโซลูชัน
  2. ขยายและเลือกชั้นเรียนของคุณ
  3. คลิกขวาที่รายการคลาส (ไม่ใช่รายการไฟล์) -> ประเภทที่ได้รับ

9
นี่จะถือว่าซอร์สโค้ดที่คุณเขียน สิ่งนี้จะทำงานกับตัวอย่างที่ระบุไว้ในคำถามเดิมได้อย่างไร (ประเภท ActionResult)
Dan Esparza

หากคุณมีประเภทใดก็ตามที่มาจาก ActionResult คุณสามารถคลิกขวาที่ประเภทของคุณและเลือกประเภทฐานซึ่งจะนำคุณไปสู่ ​​ActionResult ซึ่งตอนนี้คุณสามารถคลิกขวาที่และเลือกประเภทที่ได้รับ (หากคุณไม่มีประเภทที่มาจาก ActionResult คุณสามารถทำงานกลับไปที่ System.Object และจากนั้นลงไปที่ ActionResult)
yoyo

21
สำหรับบรรดาของคุณที่ชอบฉันคลิกขวาที่ไฟล์รหัสของชั้นเรียนและงงว่าทำไมไม่มีตัวเลือกเมนู "ประเภทที่ได้รับ": จำได้ว่าคุณต้องขยายรายการรหัสไฟล์ก่อนเพื่อเปิดเผยรายการระดับ - จากนั้น คลิกขวา.
BCA

3
ฉันใช้ VS 2017 น่าเสียดายที่นี่แสดงเฉพาะคลาสที่มีอยู่ในแอสเซมบลีเดียวกันเท่านั้นไม่แสดงโซลูชันทั้งหมด
NightOwl888

4
มันแปลกที่ฟังก์ชั่นนี้มีอยู่ใน Solution Explorer แต่ไม่ใช่ Class View
Dai

73

คุณไม่จำเป็นต้องมีตัวสะท้อนแสงในมุมมองนี้ - มุมมอง "คลาสไดอะแกรม" ของ Visual Studio จะช่วยให้คุณค้นหาคลาสที่ได้รับทั้งหมดสำหรับคลาสนั้น ๆ ได้อย่างง่ายดาย คลิกขวาที่คลาสใน "มุมมองคลาส" และเลือก "ดูคลาสไดอะแกรม" หากแผนภาพไม่แสดงระดับรายละเอียดที่คุณต้องการสำหรับลำดับชั้นให้คลิกขวาที่กล่องสำหรับชั้นเรียนในแผนภาพและเลือก "แสดงคลาสที่ได้รับมา"

อาจไม่ตรงกับ Resharper โดยตรง แต่เป็นตัวเลือกถ้าคุณไม่มี R # อยู่แล้ว

น่าเสียดายที่ฉันไม่แน่ใจว่า Visual Studio รุ่นใดมี


15
สิ่งนี้จะช่วยให้คุณดูคลาสภายในโซลูชันของคุณที่สืบทอด / ใช้คลาส / อินเตอร์เฟสเป้าหมาย ดีที่จะรู้ว่า
Markus Jarderot

คุณรู้เกี่ยวกับข้อ จำกัด ของวิธีนี้หรือไม่? เนื่องจากไม่อนุญาตให้ฉันเห็นคลาสย่อยทั้งหมด (ดูเหมือนว่าจะแสดงเฉพาะคลาสย่อยที่ไม่ได้ใช้อินเทอร์เฟซเพิ่มเติมใด ๆ )
Serge

1
ฉันพบข้อผิดพลาดว่า "ไม่มีประเภทที่มาจาก XXX ในโครงการปัจจุบัน" ดังนั้นฉันคิดว่ามัน จำกัด เฉพาะประเภทในโครงการปัจจุบันไม่ใช่วิธีแก้ปัญหา
Andy

ฉันสามารถแสดง "แสดงคลาสที่ได้รับ" ซ้ำได้หรือไม่ หรือฉันต้องเลือก "แสดงคลาสที่ได้รับ" ในทุกคลาสย่อยอย่างชัดเจนหรือไม่
James Wierzba

15

นี่เป็นคำตอบที่ขี้เกียจน้อยที่สุด (ฉันแค่ภูมิใจในคำตอบนี้ :)

ฉันไม่มี ReSharper ลองก่อน แต่ไม่ต้องการซื้อ ฉันลองแผนภาพคลาส แต่ไม่สามารถใช้งานได้จริงเพราะแผนภาพลำดับชั้นครอบคลุมโลก 3 เท่าและหน้าจอแล็ปท็อปของฉันไม่มีความกว้างไม่ จำกัด ดังนั้นวิธีแก้ปัญหาที่ง่ายและเป็นธรรมชาติของฉันคือการเขียนโค้ด Windows Forms บางตัวเพื่อวนซ้ำในประเภทแอสเซมบลีและใช้การสะท้อนเพื่อเพิ่มโหนดในมุมมองแบบต้นไม้ดังนี้

โปรดสมมติว่าคุณมีกล่องข้อความมุมมองแบบต้นไม้และสิ่งอื่น ๆ ที่จำเป็นสำหรับฟอร์มที่โค้ดนี้ทำงาน

//Go through all the types and either add them to a tree node, or add a tree
//node or more to them depending whether the type is a base or derived class.
//If neither base or derived, just add them to the dictionary so that they be
//checked in the next iterations for being a parent a child or just remain a
//root level node.

var types = typeof(TYPEOFASSEMBLY).Assembly.GetExportedTypes().ToList();
Dictionary<Type, TreeNode> typeTreeDictionary = new Dictionary<Type, TreeNode>();
foreach (var t in types)
{
    var tTreeNode = FromType(t);
    typeTreeDictionary.Add(t, tTreeNode);

    //either a parent or a child, never in between
    bool foundPlaceAsParent = false;
    bool foundPlaceAsChild = false;
    foreach (var d in typeTreeDictionary.Keys)
    {
        if (d.BaseType.Equals(t))
        {
            //t is parent to d
            foundPlaceAsParent = true;
            tTreeNode.Nodes.Add(typeTreeDictionary[d]);
            //typeTreeDictionary.Remove(d);
        }
        else if (t.BaseType.Equals(d))
        {
            //t is child to d
            foundPlaceAsChild = true;
            typeTreeDictionary[d].Nodes.Add(tTreeNode);
        }
    }

    if (!foundPlaceAsParent && !foundPlaceAsChild)
    {
        //classHierarchyTreeView.Nodes.Add(tn);
    }
}

foreach (var t in typeTreeDictionary.Keys)
{
    if (typeTreeDictionary[t].Level == 0)
    {
        classHierarchyTreeView.Nodes.Add(typeTreeDictionary[t]);
    }
}

StringBuilder sb = new StringBuilder();
foreach (TreeNode t in classHierarchyTreeView.Nodes)
{
    sb.Append(GetStringRepresentation(t, 0));
}
textBox2.Text = sb.ToString();

2
+1 สำหรับตัวอย่างโค้ดสุดเจ๋ง แล้วคลาสฐานและคลาสที่ได้รับในชุดประกอบอื่น ๆ ล่ะ?
ToolmakerSteve

@ToolmakerSteve แล้วยังไงAppDomain.CurrentDomain.GetAssemblies()ล่ะ? ดูที่นี่: stackoverflow.com/questions/851248/…
Mzn

14

เริ่มต้นจาก 'Visual Studio 2015 อัปเดต 1' คุณสามารถคลิกขวาที่ชื่อคลาสในเครื่องมือแก้ไขรหัสชั้นเรียนแล้วเลือก 'ไปสู่การใช้งาน "จากเมนูบริบท: ด้วย Ctrl + F12 เป็นทางลัด

ดูhttps://blogs.msdn.microsoft.com/dotnet/2015/11/30/whats-new-in-visual-studio-update-1-for-net-managed-language/สำหรับรายละเอียดเพิ่มเติม


1
ฉันขอบคุณเคล็ดลับ แต่ฉันไม่แน่ใจว่าที่อยู่นี้กรณีการใช้งานเดิมของฉันเพื่อดูคลาสที่สืบทอดทั้งหมดจากคลาสฐาน
Dan Esparza

3
@DanEsparza: อย่างน้อยก็ใน VS2017 ดังนั้นฉันจึง upvote คำตอบ
João Antunes

1
มันดีนะ. น่าเสียดายที่ไม่แสดงลำดับชั้นต้นไม้ ... ฉันเพิ่งแสดงรายการทั้งหมดในระดับต้นไม้เดียวกัน
Lombas

และเช่นเคยชื่อเป็นของปลอมมองข้ามอย่างสมบูรณ์ในระหว่างการค้นหา / ใช้งานของฉันต้องมาที่ StackOverflow เพื่อค้นหา!
dim8

10

ยังไม่มีใครพูดถึงเรื่องนี้ดังนั้นฉันจะเพิ่ม
Jetbrains dotPeekเป็น. NET decompiler ฟรีมีอำนาจในการแสดงข้อมูลนี้ได้อย่างง่ายดาย

ดาวน์โหลดฟรี: http://www.jetbrains.com/decompiler/

Jetbrains เป็น บริษัท ที่สร้าง Resharper

ขั้นตอนในการค้นหาคลาสที่ได้รับ:

  1. เริ่ม dotPeek
  2. เลือก 'เปิดจาก GAC ... ' และเพิ่มชุดประกอบ System.Web.MVC
  3. เลือก 'นำทาง / ไปที่ประเภท' และพิมพ์ ActionResult
  4. ในการActionResultประกาศคลาสคลิกขวาและเลือก 'สัญลักษณ์ที่ได้รับ'
  5. Voila! ทุกคลาสที่ได้รับจะปรากฏขึ้น

7

สมมติว่าคุณมีResharperติดตั้งแล้ว: ด้วยเคอร์เซอร์บนคลาส / อินเทอร์เฟซคลิกขวา - ตรวจสอบ - ลำดับชั้น

สิ่งนี้แสดงคลาสย่อยการนำไปใช้และซูเปอร์คลาส


อืม ... น่าสนใจ แต่ไม่ใช่สิ่งที่ฉันกำลังมองหา ถ้าฉันคลิกขวาที่รายการ ActionResult ที่ส่งคืนและทำตามขั้นตอนเหล่านี้ฉันจะได้รับตัวเลือก 'ตรวจสอบ' สำหรับ 'ตัวควบคุม' (ประเภทของคลาสที่มี) หากฉันพยายามไปที่คำจำกัดความ 'ViewResult' ฉันอยู่ในเมทาดาทาและฉันไม่มีตัวเลือกในการตรวจสอบลำดับชั้น
Dan Esparza

1
นอกจากนี้: ฉันค่อนข้างแน่ใจว่านี่เป็นฟังก์ชั่นที่ Resharper จัดให้ แต่กำเนิดไม่ได้อยู่ใน Visual Studio ...
Dan Esparza

7

ลอง Visual Studio Class View

ใน Visual Studio Class View ไปที่คลาสที่คุณสนใจและค้นหาคลาสพื้นฐานและคลาสที่ได้รับ


3
นี่เป็นมุมมองที่เป็นประโยชน์จริง ๆ น่าเศร้าที่มันช้าอย่างเหลือเชื่อไม่ได้เชื่อมโยง / ติดตามบรรณาธิการปัจจุบันและโดยทั่วไปจะรู้สึกว่าเป็นเรื่องภายหลังใน VS
E-Riz

สิ่งนี้แสดงให้เห็นถึงคลาสทั้งหมดไม่ใช่เฉพาะในโซลูชันของคุณและทำงานได้ทันที มันไม่ช้า สำหรับมุมมองแบบกราฟให้ใช้คุณลักษณะคลาสไดอะแกรมในตัวเช่นกัน (แต่แสดงเฉพาะคลาสภายในโซลูชันของคุณ) นี่คือทั้งหมดที่ฉันต้องการและนี่คือคำตอบที่ดีที่สุด
Nikos

5

นอกจากนี้คุณยังสามารถใช้กระจกสะท้อนแสง

โหลดแอสเซมบลีทั้งหมดที่คุณต้องการค้นหานำทางไปยังชนิดและขยายรายการ Derived Types

คุณสามารถทำได้ใน Object Browser แต่ด้วยเหตุผลบางอย่าง VS2008 สามารถทำได้ในมุมมอง. Net Framework อย่างใดอย่างหนึ่ง (VS2010 Beta 2 สามารถทำได้ทุกมุมมอง)


3
ตอนนี้ตัวสะท้อนจะเสียเงิน แต่ ILSpy จะทำเช่นเดียวกันฟรี
yoyo

มีการทดลองใช้ฟรี 30 วัน แต่ไม่มีรุ่นฟรีที่คุณสามารถใช้ได้อย่างไม่มีกำหนด ถ้าคุณไม่รู้จักสิ่งที่ฉันไม่? ผมไม่เพียงแค่ตรวจสอบreflector.net
yoyo

1
ขออภัย; ตัวสะท้อนที่เคยมีรุ่นฟรี พวกเขากำจัดมันเมื่อไหร่?
SLaks

2 กุมภาพันธ์ 2554 - zdnet.com/blog/burnette/…
yoyo

3
สิ่งที่น่ากลัวอย่างแท้จริงคือหลังจากวันนั้นถ้าคุณเรียกใช้สำเนาของรุ่นฟรีที่คุณได้ดาวน์โหลดไว้ก่อนหน้านี้ redgate (พวกเขาซื้อตัวสะท้อนแสง) ลบรุ่นฟรีเก่าแทนที่ด้วยการทดลอง โดยไม่มีการเตือนล่วงหน้า และไม่มีตัวเลือกให้หลีกเลี่ยง "การอัพเกรด" ถูกต้อง: ฉันไม่ได้ไปที่เว็บไซต์ของ บริษัท และดาวน์โหลดอะไรจากพวกเขา แต่มีตรรกะสิทธิ์ใช้งานใน ReSharper เก่าที่ถูกเปลี่ยนเส้นทางไปยังพวกเขาและอนุญาตให้พวกเขาปิดการใช้งานสำเนาที่ฉันมี ฉันสาบานที่จะไม่เคยซื้อสิ่งใดจาก Redgate หรือไม่ก็ส่งเสริมการมีอยู่ของพวกเขา
ToolmakerSteve

4

สำหรับคลาส Framework ฉันใช้ไลบรารี MSDN ส่วนลำดับชั้นของมรดกสืบทอดไปในทั้งสองทิศทาง แม้ว่าจะไม่ค่อยได้รับความช่วยเหลือเท่าไหร่สำหรับห้องสมุดปาร์ตี้ 3 มิติ


นี่คือตัวอย่างสำหรับ System.Exception: msdn.microsoft.com/en-us/library/ …
bnieland

4

ด้วยความช่วยเหลือของReSharper (เวอร์ชั่น 2016.1.2) เพียงแค่Ctrl+ Alt+ Clickในคลาสฐาน คุณจะเห็นสิ่งนี้:

ดู reSharper คลาสที่ได้รับ


1
+1 ดี! ดังนั้นดูเหมือนว่าชื่อคลาสที่ปรากฏเป็นตัวหนาในรายการจะสืบทอดโดยตรงจากคลาสพื้นฐานที่เลือกและชื่อคลาสในรายการที่ไม่เป็นตัวหนาจะสืบทอดโดยทางอ้อมจากคลาสพื้นฐานที่เลือกหรือไม่
Simon Bosley

เผง หัวล้านจะเป็นคลาสที่สืบทอดโดยตรง
Devid


1

เลือกประเภทและคลิกขวาดูที่บางสิ่งบางอย่าง --- แสดงบนโค้ดแผนที่ - ให้เลือกสร้างรูปแบบภาพสำหรับผู้ที่สืบทอดประเภทนี้เป็นภาพที่ดีมากเป็นรูปแบบไฟล์. dgml ซึ่งให้ข้อมูลเพิ่มเติมเกี่ยวกับประเภท


1

เป็นตัวเลือกสำหรับผู้ที่ใช้ Visual Assist คุณสามารถกด Shift + ALT + G (ในขณะที่เครื่องหมายรูปหมวกอยู่ในชื่อคลาส) เพื่อเรียกเมนูบริบท "Goto Related" ขึ้นมาและหากมีคลาสที่ได้รับคุณจะได้รับเมนูย่อย เพราะนั่นแสดงรายการพวกเขาทั้งหมดและยังแสดงโครงสร้างการสืบทอดในคลาสที่ได้รับเหล่านั้น


0

เพียงแค่รหัส

Assembly asm = Assembly.LoadFrom(PATH_TO_PROJECT_OUTPUT);

var types = from t in asm.GetTypes()
            where t.BaseType != null && t.BaseType.ToString() == "System.Web.UI.Page"
            // if you want to add reference - where typeof (System.Web.UI.Page).Equals(t.BaseType) 
            select t;

foreach (var type in types)
{
    Console.WriteLine(type);
}

2
น่าเสียดายที่สิ่งนี้บอกประเภทที่สืบทอดโดยตรงจากคลาสหนึ่ง ๆ ไม่ใช่ประเภทที่สืบทอดโดยทางอ้อมจากคลาสนั้น สำหรับสิ่งที่คุณอาจต้องใช้สิ่งที่ MZN เขียน
user420667

หรือคุณสามารถใช้ t.IsSubClassOf (targetclass)
user420667

0

หากคุณอัพเกรดเป็น VS2012 คุณสามารถใช้ "รหัสแผนที่"
คลิกขวาที่ประเภทที่คุณต้องการดูลำดับชั้นการสืบทอดและเลือก "เพิ่มในรหัสแผนที่" จากนั้นในมุมมองแผนที่รหัสคุณสามารถขยายโหนดและคลิกขวาเพื่อเลือก "แสดงคลาสที่ได้รับ / ฐาน" น่าเสียดายที่มันไม่ทำงานสำหรับ. NET ที่ให้คลาส


4
FYI กับคนอื่น ๆ จะใช้กับ VS2012 Ultimate พร้อมติดตั้งอัปเดต 1 เท่านั้น ผู้คนระดับพรีเมียม / มืออาชีพไม่สามารถสร้างแผนที่เหล่านี้ได้
Sean Hanley

0

สำหรับ Visual Studio 2012 ( ไม่มี ReSharper )

  1. ในโซลูชัน Explorer คลิกขวาที่คลาส (ซึ่งมีคลาสที่ได้รับซึ่งคุณต้องการดู)
  2. ในแผนภาพคลาสคลิกขวาที่คลาสแล้วเลือก 'แสดงคลาสที่ได้รับ'

1
อีกครั้งที่ฉันสามารถบอกได้ว่าสิ่งนี้จะแสดงเฉพาะคลาสที่ได้รับซึ่งคุณเขียนไว้เท่านั้น สิ่งนี้จะทำงานกับตัวอย่างที่ระบุไว้ในคำถามเดิมได้อย่างไร (ประเภท ActionResult)
Dan Esparza

0

อัพเดต 2020:

คุณสามารถใช้Maps Codeของ Visual Studioซึ่งใช้งานได้ดี

เพียงแค่คลิกขวาบนชั้นและนำทางไปยัง:
Code Map> Show Related Items on Code Map>Show All Derived Types

ป้อนคำอธิบายรูปภาพที่นี่

บันทึก:

  • ฟีเจอร์นี้มีเฉพาะในรุ่น Enterprise ของ Visual Studio และหากคุณไม่มีคุณสามารถดาวน์โหลดได้ฟรีโดยการดาวน์โหลดเวอร์ชั่นพรีวิวจากองค์กรได้ที่นี่ที่นี่
  • หรือคุณอาจขอให้ทุกคนจากทีมของคุณแชร์รหัสแผนที่ด้วยคุณสมบัตินี้หากพวกเขามีฉบับนั้น

PS มันคุ้มค่าที่จะเก็บรุ่น Enterprise (หรืออย่างน้อยเวอร์ชั่น Preview) ไว้ในเครื่องของคุณเนื่องจากมีเครื่องมือที่มีประโยชน์มากมายซึ่งไม่รวมอยู่ในรุ่นอื่น ๆ


1
ดูเหมือนว่าจะใช้งานได้กับประเภทที่คุณมีแหล่งที่มาเท่านั้น ไม่ได้สิ่งที่ต้องการActionResult(ตัวอย่างของ OP)
เลน

-1

วิธีที่ง่ายมากในการทำเช่นนี้คือการค้นหา: Classnameใน "ค้นหาและแทนที่หน้าต่าง" (CTRL + F) และใช้ตัวเลือก "ค้นหาตัวเลือก / จับคู่ทั้งคำ" คุณจะพบคลาสที่สืบทอดเท่านั้น


1
สิ่งนี้ไม่ทำงานทุกครั้งให้พิจารณาclass DDerived : IInterface, BBase
jirkamat
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.