login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Classes en methodes in charp.net (Opgelost)

Offline Martijn2008 - 10/10/2009 00:37 (laatste wijziging 15/10/2009 15:19)
Avatar van Martijn2008PHP beginner Hallo allemaal,

Ik heb met een csharp webform een eenvoudige photogallery gemaakt. Nu probeer ik deze om te zetten in een csharp class. Echter dit lukt mij niet, ik krijg errors. Momenteel krijg ik er 1 op de foreach. Ik weet hoe ik moet werken met classes en php, bij Csharp.net heb ik echter nog niet een goed idee van de werking van classes en methodes.

Bedankt alvast voor jullie hulp.

Martijn

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Linq;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.HtmlControls;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.WebControls.WebParts;
  11. using System.Xml.Linq;
  12.  
  13. // Import some classes
  14. using System.IO;
  15.  
  16. /// <summary>
  17. /// Summary description for Gallery
  18. /// </summary>
  19. public class Gallery
  20. {
  21. private string strDir = "";
  22. private string arGallery = "";
  23. private string strDirectDir = "";
  24. private int intCount;
  25.  
  26. public Gallery()
  27. {
  28. //
  29. // TODO: Add constructor logic here
  30. //
  31.  
  32. string strDirectDir = "gallery";
  33. string strDir = @"C:\Documents and Settings\admin\Mijn documenten\Visual Studio 2008\WebSites\MooieGallery\" + strDirectDir + @"\";
  34. string[] arGallery = Directory.GetFiles(strDir, "*.bmp");
  35. }
  36.  
  37. public int countPhotos(string arGallery)
  38. {
  39. int intCount = arGallery.Count();
  40. return intCount;
  41. }
  42.  
  43. public string pages(int intCount)
  44. {
  45.  
  46. }
  47.  
  48. public string view(int intCount, string arGallery, string strDirectDir)
  49. {
  50. if (intCount > 0)
  51. {
  52. int intPhotoCount = 1;
  53. string strData = "";
  54.  
  55. foreach (string key in arGallery)
  56. {
  57. strData = strData + "<img src=\"" + strDirectDir + "/" + key.Replace(strDir, "") + "\" /><br />";
  58.  
  59. intPhotoCount++;
  60. }
  61.  
  62. return strData;
  63. }
  64. }
  65. }

14 antwoorden

Gesponsorde links
Offline Ultimatum - 10/10/2009 00:41
Avatar van Ultimatum PHP expert Wat is je fout, en als je naar de color coding kijkt zie je dat er fout op regel 33 zit (of komt dat door de highlighter hiet op sima?). De 2de @ is trouwens onnodig op diezelfde regel.
Offline Martijn2008 - 10/10/2009 00:45 (laatste wijziging 10/10/2009 00:52)
Avatar van Martijn2008 PHP beginner Ha ha, ik stond ook al een beetje raar te kijken van de highligting. Waarschijnlijk ligt dat aan sima, heb er in Visual Studio 2008 namelijk geen last van.

Ik heb die 2e @ neergezet, omdat anders het programma in een fout liep en dit dat voorkwam. Trouwens weet ook niet wat die @ precies doet, maar vond die oplossing op Google.

Dit is trouwens de relationele code, dus zonder gebruik van classes en methodes. Wil het graag omzetten om dat te leren.

  1. using System;
  2. using System.Collections;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Web;
  7. using System.Web.Security;
  8. using System.Web.UI;
  9. using System.Web.UI.HtmlControls;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.WebControls.WebParts;
  12. using System.Xml.Linq;
  13.  
  14. // Import some classes
  15. using System.IO;
  16.  
  17. public partial class _Default : System.Web.UI.Page
  18. {
  19. protected void Page_Load(object sender, EventArgs e)
  20. {
  21. string strDirectDir = "gallery";
  22. string strDir = @"C:\Documents and Settings\admin\Mijn documenten\Visual Studio 2008\WebSites\MooieGallery\" + strDirectDir + @"\";
  23.  
  24. string[] arGallery = Directory.GetFiles(strDir, "*.bmp");
  25. int intCount = arGallery.Count();
  26.  
  27. if (intCount > 0)
  28. {
  29. int intPhotoCount = 1;
  30. string strData = "";
  31.  
  32. foreach (string key in arGallery)
  33. {
  34. strData = strData + "<img src=\"" + strDirectDir + "/" + key.Replace(strDir, "") + "\" />";
  35.  
  36. intPhotoCount++;
  37. }
  38.  
  39. lblGallery.Text = strData;
  40. }
  41.  
  42. }
  43. }
Offline Ultimatum - 10/10/2009 01:17
Avatar van Ultimatum PHP expert De @ is om fouten te onderdrukken net zoals php, want een enkele \ geeft fouten, dit zou je kunnen oplossen door @ te gebruiken zoals je al doet of door \\ te gebruiken ipv \. Maar je zei dat er een foutmelding kwam, weet nog steeds niet welke foutmelding.
Offline Abbas - 10/10/2009 02:34
Avatar van Abbas Gouden medaille

Crew .NET
@Ultimatum: die @ onderdrukt geen fouten maar zorgt er gewoon voor dat een enkele \ juist gezien wordt en geen escape-string teken is.

Maak er eens gewoon dit van:

  1. string strDir = @"C:\Documents and Settings\admin\Mijn documenten\Visual Studio 2008\WebSites\MooieGallery\" + strDirectDir + "\";
Offline Martijn2008 - 10/10/2009 12:42
Avatar van Martijn2008 PHP beginner Dat werkt inderdaad, maar mijn eigenlijke vraag is: Hoe werk ik met classes en methodes met Csharp.net? Mijn rationele code werkt immers al. Ik heb al een opzetje proberen te maken(zie mijn eerste post), maar die code werkt niet. Hoe roep ik classen en methodes eigenlijk op met Csharp?
Offline Abbas - 10/10/2009 13:02 (laatste wijziging 10/10/2009 13:19)
Avatar van Abbas Gouden medaille

Crew .NET
Doe zelf eens een klein beetje meer moeite om te zoeken: http://www.site...rd/Classes
Offline Martijn2008 - 15/10/2009 13:08 (laatste wijziging 15/10/2009 13:09)
Avatar van Martijn2008 PHP beginner Bedankt voor de link naar de tutorial. Ik heb deze uitleg naast mijn code gelegd, maar zie mijn fout niet goed. Ik krijg momenteel een error op regel 55(foreach (string key in arGallery)):

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0030: Cannot convert type 'char' to 'string'

Het miraculeuze is juist dat het in de rationele code wel werkt en niet in de class. De fout zou dus gezocht moeten worden in de class.
Offline Abbas - 15/10/2009 14:58
Avatar van Abbas Gouden medaille

Crew .NET
De foutmelding spreekt duidelijk voor zich. Je probeert een char naar een string te converten. Zorg dat de beide variabelen van hetzelfde datatype zijn, ofwel allebei char ofwel allebei string.
Offline Martijn2008 - 15/10/2009 15:02 (laatste wijziging 15/10/2009 15:06)
Avatar van Martijn2008 PHP beginner Nja, dat begrijp ik wel, maar hoe kan het dan wel in de rationele code werken. In de class werkt het niet. Het gaat daar ergens mis, maar ik weet alleen niet waar. Ik defineer de array(arGallery) toch echt in de class constructor.

  1. public Gallery()
  2. {
  3. //
  4. // TODO: Add constructor logic here
  5. //
  6.  
  7. string strDirectDir = "gallery";
  8. string strDir = @"C:\Documents and Settings\admin\Mijn documenten\Visual Studio 2008\WebSites\MooieGallery\" + strDirectDir + @"\";
  9. string[] arGallery = Directory.GetFiles(strDir, "*.bmp");
  10. }
Offline Abbas - 15/10/2009 15:10
Avatar van Abbas Gouden medaille

Crew .NET
Met die code ben ik niets. Geef de code waar je die foreach en al hebt.
Offline Martijn2008 - 15/10/2009 15:17 (laatste wijziging 16/10/2009 12:23)
Avatar van Martijn2008 PHP beginner De foreach loop kun je vinden op regel 55 van de code die ik heb toegevoegd aan de topic vraag(eerste post van deze topic dus). Op regel 34 maak ik de array arGallery aan. Array arGallery zal in de methode later in de code opgeroepen worden.
Offline Abbas - 16/10/2009 13:46 (laatste wijziging 16/10/2009 13:47)
Avatar van Abbas Gouden medaille

Crew .NET
Waarom declareer je de variabelen opnieuw in de constructor van je klasse? Ze zijn als private gedeclareerd daarboven. In je constructor moet je alleen nog de waarde meegeven, niet opnieuw declareren!

Edit:
In je declaratie boven de default constructor moet je wel van arGallery een array maken, nu is het een gewone string.
Offline Martijn2008 - 16/10/2009 21:12 (laatste wijziging 16/10/2009 21:13)
Avatar van Martijn2008 PHP beginner Ik blijf problemen houden met de foreach loop. Momenteel heb ik de volgende code:

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Linq;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.HtmlControls;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.WebControls.WebParts;
  11. using System.Xml.Linq;
  12.  
  13. // Import some classes
  14. using System.IO;
  15.  
  16. /// <summary>
  17. /// Summary description for Gallery
  18. /// </summary>
  19. public class Gallery
  20. {
  21. public int intCount;
  22. public string strDirectDir = "";
  23. public string strDir = "";
  24. public string[] arGallery;
  25.  
  26. public Gallery()
  27. {
  28. //
  29. // TODO: Add constructor logic here
  30. //
  31.  
  32. string strDirectDir = "gallery";
  33. string strDir = @"C:\Documents and Settings\admin\Mijn documenten\Visual Studio 2008\WebSites\Gallery\" + strDirectDir + @"\";
  34. string[] arGallery = Directory.GetFiles(strDir, "*.bmp");
  35. }
  36.  
  37. public int countPhotos(string arGallery)
  38. {
  39. int intCount = arGallery.Count();
  40. return intCount;
  41. }
  42.  
  43. public string view(int intCount, string arGallery, string strDirectDir)
  44. {
  45. if (intCount > 0)
  46. {
  47. int intPhotoCount = 1;
  48. string strData = "";
  49.  
  50. foreach (string key in arGallery)
  51. {
  52. strData = strData + "<img src=\"" + strDirectDir + "/" + key.Replace(strDir, "") + "\" alt=\"" + intPhotoCount + "\" />";
  53.  
  54. intPhotoCount++;
  55. }
  56.  
  57. return strData;
  58. }
  59. }
  60. }
Offline Abbas - 16/10/2009 21:26
Avatar van Abbas Gouden medaille

Crew .NET
Kerel, wat zei ik in m'n vorige post?!?! Je moet de variabelen NIET OPNIEUW declareren in de default constructor en ze public maken heeft ook geen nut! Zo dus:

  1. private int intCount;
  2. private string strDirectDir = "";
  3. private string strDir = "";
  4. private string[] arGallery;
  5.  
  6. public Gallery()
  7. {
  8. //
  9. // TODO: Add constructor logic here
  10. //
  11.  
  12. strDirectDir = "gallery";
  13. strDir = @"C:\Documents and Settings\admin\Mijn documenten\Visual Studio 2008\WebSites\Gallery\" + strDirectDir + @"\";
  14. arGallery = Directory.GetFiles(strDir, "*.bmp");
  15. }
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.223s