13. august 2006 - 17:47Der er
16 kommentarer og 2 løsninger
Problemer med klasser under klasser
jeg har 2 klasser
SaSMS.Datainterface SaSMS.SaSMS_User
Jeg vil gerne have den ene klasse til at være en del af den anden klasse, så jeg kan tilgå den noget ala
objSaSMSDatainterface.user.method();
jeg har lavet klasserne, og i klassen SaSMS.dataInterface har jeg lavet en variable der er ser således ud:
public SaSMS.SaSMS_User User = new SaSMS.SaSMS_User(this);
den anden klasse SaSMS_User har en constructor der ser noget ala sådan ud:
/// <summary> /// Constructor without login /// </summary> /// <param name="objSaSMS">Reference to the SaSMS.Daainterface</param> public SaSMS_User(ref SaSMS.dataInterface objSaSMS) { this._objSaSMS = objSaSMS; }
hvorfor virker det ikke ?? de fejlder kommer er her: Error 4 Keyword 'this' is not available in the current context C:\Documents and Settings\Thomass\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\clsSaSMS_Datainterface.cs 37 65 SaSMS-Interface Error 6 Argument '1' must be passed with the 'ref' keyword C:\Documents and Settings\Thomass\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\clsSaSMS_Datainterface.cs 37 65 SaSMS-Interface Error 5 The best overloaded method match for 'SaSMS.SaSMS_User.SaSMS_User(ref SaSMS.dataInterface)' has some invalid arguments C:\Documents and Settings\Thomass\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\clsSaSMS_Datainterface.cs 37 40 SaSMS-Interface
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
using System; using System.Collections.Generic; using System.Text; using System.Collections;
namespace SaSMS { class SaSMS_User { /// <summary> /// Internal pointer to the SaSMS Object /// </summary> private SaSMS.dataInterface _objSaSMS;
/// <summary> /// Indication if user is logged in :) /// </summary> private Boolean _loggedin = false;
/// <summary> /// Array with userInfo /// </summary> private ArrayList _userInfo = new ArrayList();
/// <summary> /// Main constructor /// </summary> /// <param name="username">The username of the user</param> /// <param name="objSaSMS">reference to the main SaSMS object</param> public SaSMS_User(string username, ref SaSMS.dataInterface objSaSMS) { this._objSaSMS = objSaSMS;
System.Data.DataSet dsTmp = new System.Data.DataSet();
dsTmp = this._objSaSMS.dbQuery("select Navn, [Type-BESKRIV] from Kode_bruger"); if (dsTmp == null) return;
/// <summary> /// Constructor without login /// </summary> /// <param name="objSaSMS">Reference to the SaSMS.Daainterface</param> public SaSMS_User(ref SaSMS.dataInterface objSaSMS) { this._objSaSMS = objSaSMS; } /// <summary> /// See is a user is logged in /// </summary> /// <returns>Returns true if a user is logged into the SaSMS system</returns> public Boolean loggedin() { if (this._loggedinUser == string.Empty) return false; return true; }
/// <summary> /// Login user to SaSMS system /// </summary> /// <param name="userName">The username of the USER (this is also the password)</param> /// <returns>true on sucessfyl login</returns> public Boolean login(string userName) { if (!this.validateUser(userName)) return false;
#region User methods... /// <summary> /// Return a list of users in SaSMS Database... /// </summary> /// <returns>ArrayList of users in SaSMS</returns> public System.Collections.ArrayList getUserlist() { System.Collections.ArrayList alTmp = new System.Collections.ArrayList();
foreach (System.Data.DataRow test2 in this.dbQuery("Select [Navn] from Kode_bruger order by Navn").Tables[0].Rows) { alTmp.Add(test2.ItemArray[0]);
} return alTmp; //this.dbQuery("Select [Navn] from Kode_bruger").Tables[0].Rows[0].ItemArray; }
#endregion
#region Raw database methods...
/// <summary> /// Preform a Query in the SaSMS database /// </summary> /// <param name="sqlQuery">SQL Query</param> /// <returns>Dataset with data</returns> public System.Data.DataSet dbQuery(string sqlQuery) { //His der ikke er forbindelse til database så forbind... if (_dbCon.State != ConnectionState.Open) _dbCon.Open();
SqlDataAdapter _sqlA = new SqlDataAdapter(sqlQuery, _dbCon); DataSet _tmpreturn = new DataSet();
Error 1 Cannot pass '<this>' as a ref or out argument because it is read-only C:\Documents and Settings\Thomass\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\clsSaSMS_Datainterface.cs 51 50 SaSMS-Interface
og så ser jeg ikke nogen grund til at smide den med som en ref, da du alligevel får en ref tilbage til det org object når du sender this videre som er en klasse....
Error 1 Cannot pass '<this>' as a ref or out argument because it is read-only C:\Documents and Settings\Thomass\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\clsSaSMS_Datainterface.cs 51 50 SaSMS-Interface
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.