Ja, hehe, jag pillade med det ett par minuter nu, och kom på det :). Tack för svaret. Jag gillar din regex bättre än min, hehe, eftersom din funkar.
Har detta:
using System.Text.RegularExpressions;
using System;
namespace Henke
{
/// <summary>
/// Min validator, som ska kompletteras med fler funktioner
/// </summary>
public class Validator
{
public bool IsEmail(string strToCheck)
{
Regex r = new Regex(@"\w{1,}@\w{2,}\.\w{2,3}");
return r.IsMatch(strToCheck);
}
}
}
Hur gör jag detta till en .dll fil som jag kan lägga i min bin-mapp (som i sin tur ligger i min applicationsmapp)?
Undrar en annan sak också, ett logiskt fel, som borde fungera enligt mig.
string strChecker = checker.Text.ToLower();
string[] strMyNames = new string[] { "henrik", "henke", "henrik feldt", "feldt" };
for (int i = 0; i < strMyNames.Length; i++) {
if (strChecker == strMyNames[i])
{
break;
}
else { lblResponse.Text = "Not my name."; return false; }
}
Problemet är att om strChecker är henke så stoppas inte loopen. Den stoppas bara om strChecker är "henrik".
Lösning? :(
-------- EDIT:
Lösning:
string strChecker = checker.Text.ToLower();
string[] strMyNames = new string[] { "henrik", "henke", "henrik feldt", "feldt" };
bool found = false;
for (int i = 0; i < strMyNames.Length && !found; i++) {
if (strChecker == strMyNames[i])
{
found = true;
break;
}
}
if (!found) { lblResponse.Text = "Not my name."; return false; }
Det var så att om rätt namn hittades så stoppades enbart if-satsen, inte loopen, vilket gjorde att nästa if-sats else-sats kördes, och funktionen retunerade false. =)
Ja, det var ett sätt som jag inte har sett förut - man kan väl kalla det abstraktion? Istället för att jag skriver loopen så gör
System.Collections.Specialized.StringCollection namnrymden det åt mig?
(du glömde en parantes i void btCheck_Click)
Jag lade till den andra varianten eftersom den är ny för mig :)... Har inte använt den namnrymden tidigare.
Men som jag sade tidigare: "Hur gör jag detta till en .dll fil som jag kan lägga i min bin-mapp (som i sin tur ligger i min applicationsmapp)?" - alltså valideringen av emailen?
Det är just det - jag använder inte Visual Studio. Har något som heter SharpDevelop som det skrevs om i Datormagazin de senaste tre nummerna... Lyckas inte riktigt få det att fungera där...
Men det är en sak som inte riktigt stämmer med hur du säger att man ska instansiera den:
MittnameSpace.MinKlass = variabelnamn new MittnameSpace.MinKlass();
ska det inte vara
MittNamespace.MinKlass mittObjekt = new MittNamespace.MinKlass.Konstruktor();
eller om man lägger till "using Namespace;":
MinKlass objMittObjekt = new Konstruktor();
(sen är ju självklart konstruktorn oftast kallad samma sak som klassen)
sedan
objMittObjekt.Metod();
Men finns det inget annat sätt att kompilera filerna då, än att använda MS VisualStudio?
Men det är en sak som inte riktigt stämmer med hur du säger att man ska instansiera den:
MittnameSpace.MinKlass = variabelnamn new MittnameSpace.MinKlass();
Självklart ska det vara så. Skrivfel av mig!
Du kan kompilera från promten om du vill - inga problem.
för c# använder du kommandot csc
För att skapa ett library:
csc /target:library /out:myLibrary.dll myFile.cs
För att skapa en exe som refererar till detta lirbary
csc /reference:myLibrary.dll MyFile2.cs
Alla kommandon är tagna ur huvudet så fel kan förkomma. Google är din vän i dessa sammanhang :)
Men jag är ganska säker på att du kan kompilera i sharpdevelop, du kanske måste ändra target till library eller nåt sånt i projektet. Har tyvärr inte använt sharpdevelop så jag vet inte riktigt hur det fungerar där...
252 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25