11. september 2007 - 20:40Der er
28 kommentarer og 1 løsning
Problemer med SIMPEL klasse
Hej. jeg er lige begyndt på .net i skolen her for to dage siden, og de koder i vb, eller det gør jeg også, men jeg vil gerne bruge c# da syntaksen minder meget om php, som jeg startede med at arbejde i. Så her kommer mit problem, som jeg har i c# men ikke i vb..
class fil:
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
/// <summary> /// Summary description for OOPTest /// </summary> namespace MyNameSpace { public class IntFunctions { public object AddFunction(int tal1, int tal2){ return tal1 + tal2; } }
public class strFunctions { public object strUpper(String Tekst){ return Tekst.ToUpper(); } public object strLower(String Tekst){ return Tekst.ToLower(); } }
}
og min side, hvor det skal udskrives
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using MyNameSpace;
public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { IntFunctions LOL = new IntFunctions(); strFunctions strOOPTest = new strFunctions(); Label1.Text = LOL.AddFunction(1, 2); Label2.Text = strOOPTest.strLower("hej");
} }
og fejlen den skriver er: Typen 'object' kan ikke konverteres implicit til 'string'. Der findes en eksplicit konvertering (mangler der en cast?)
Fejlen er der to gange i linie 18 og 19, og det er på default.aspx.cs den er i.
public class strFunctions { public string strUpper(String Tekst){ return Tekst.ToUpper(); } public string strLower(String Tekst){ return Tekst.ToLower(); } }
okay :) nu du siger det så har jeg hørt noget om at hvis man bruger en function i vb, så kan der være forskellige i c#
altså ret mig hvis jeg er forkert. public string test() - er til functioner der retunere strenge public Object test() - er til functioner der retunere tal Er det korrekt?
aah på det måde. Nu har jeg altså namespace MyNameSpace { public class IntFunctions { public int AddFunction(int tal1, int tal2){ return tal1 + tal2; } }
public class strFunctions { public string strUpper(String Tekst){ return Tekst.ToUpper(); } public string strLower(String Tekst){ return Tekst.ToLower(); } }
}
Men den brokker sig i linie 18, som er public int AddFunction(int tal1, int tal2){
Med fejlen : Typen 'int' kan ikke implicit konverteres til 'string'
Grunden til at VB.NET et lidt large mht. hvordan du skriver tingene er at sikkerhedsinstillingerne ikke er så stramme i VB.NET som i C# - hvorfor de ikke er det er historisk betinget; sådan var die i VB Script.
Hvis du ønsker at forcere at det skal vøre skrevet ordentligt, kan du f.eks. bruge Option Exact.
nielle, nu har jeg rettet til det du sagde, men der giver fejl. lige for at opdatere jer : class fil: namespace MyNameSpace {
public class IntFunctions { public int AddFunction(int tal1, int tal2) { return tal1 + tal2; } }
public class strFunctions { public string strUpper(String Tekst){ return Tekst.ToUpper(); } public string strLower(String Tekst){ return Tekst.ToLower(); } }
}
default.aspx.cs using MyNameSpace;
public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { IntFunctions LOL = new IntFunctions(); strFunctions strOOPTest = new strFunctions();
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.