Någon som vet hur man tar reda på vad en klass ärver ifrån? Du kan testa om en klass ärver ifrån en basklass med nyckelorden <b>is</b> och <b>as</b> : Tack för svaret! Jag löste det dock på ett annat sätt: >>helt enkelt: Jag har inte testat det faktiskt, jag trodde att "is" var ett VB-påhitt... :) Men du har förstås helt rätt, jag kollade upp "is" på MSDN och det är ju precis vad jag letade efter! Förstår inte hur jag har kunnat missa ett sånt keyword...Få reda på vad en kontroll ärver ifrån
Exempel:
En CustomDropDownList ärver från DropDownList. Om jag har en instans av en CustomDropDownList, hur kan jag då får reda på att den ärver från DropDownList?
System.Reflection BORDE ju innehålla något fiffigt, tycker jag... :)
Tack!Sv: Få reda på vad en kontroll ärver ifrån
Button c = new Button();
if (c is WebControl)
Response.Write("c inherits from WebControl<br>");
WebControl w = c as WebControl;
if (w!=null)
Response.Write("c inherits from WebControl<br>");
// Variabeln c måste konverteras till System.Object annars
// fångar kompilatorn den felaktiga typkonverteringen
ListBox l = (object)c as ListBox;
if (l==null)
Response.Write("c is not a ListBox<br>");
<b>as</b> returnerar alltså <b>null</b> om inte typkonverteringen är giltig.
Sv:Få reda på vad en kontroll ärver ifrån
Om jag vill veta ifall min CustomControlClass ärver från System.Web.UI.WebControls.DropDownList kör jag helt enkelt:
if(CustomControlClass.GetType().BaseType==typeof(DropDownList))
.....
Sv: Få reda på vad en kontroll ärver ifrån
är det inte enklare med:
if (mycontrol is DropDownList)
{
}
det är ju själva syftet med "is", dvs att testa om en instans är eller ärver en viss typSv:Få reda på vad en kontroll ärver ifrån
Tack så mycket för hjälpen, Roger!