webForumDet fria alternativet

private/public

.NETur .NET

2 svar · 183 visningar · startad av ptype

ptypeMedlem sedan juni 2002151 inlägg
#1

Jag har en aspx med tillhörande code-behind aspx.cs.
Från min aspx vill jag köra en metod i min aspx.cs-fil. Om inte dena metod är public så klagar kompilatorn på att den inte kan nås. Jag tycker det verkar konstigt. Speciellt eftersom andra events kan nås, trots att de är private. Teoretiskt borde det ju inte vara några problem eftersom det ju är samma klass, UI:t och koden bakom.

Min kod ser ut så här:

<asp:ImageButton id="ImageButton1" oncommand="Imagebutton3_Command" runat="server" ImageUrl="file:///C:\Documents and Settings\alien\Desktop\pilar.gif" AlternateText="Flytta denna bild upp" CommandName="up" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "intId") %>'>

Det är alltså Imagebutton3_Command jag anropar.

Använder VS.NET

F.ö. borde inte detta "delforum" heta ASP.NET istället för bara .NET?

P

SPiNMedlem sedan mars 20007 896 inlägg
#2

Om inte dena metod är public så klagar kompilatorn på att den inte kan nås. Jag tycker det verkar konstigt.

Det är inte alls konstigt, eftersom att metoder och variabler deklarerade med private är just privata. Det innebär att de endast kan nås från andra metoder i samma klass, och inte utifrån. Public innebär att metoden/variabeln är öppen att använda via alla instanser av klassen ( Så vida det inte är statiska fält eller metoder ;) ).

F.ö. borde inte detta "delforum" heta ASP.NET istället för bara .NET?

Vi har haft diskussioner om det här i staff, och det kommer nog att bli en del ändringar. :)

ptypeMedlem sedan juni 2002151 inlägg
#3

Jo, men xxx.aspx och xxx.aspx.cs borde ju rimligen höra till samma klass, eller? När dessutom andra event-metoder, som är private, går att nå är felet mystiskt.

131 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)