Hejsan Ok jag gör ett försök. Min "approach" blir en array av enums för att markera vilken färg en position ska ha. ResultEnum.None betyder att positionen inte är satt. Dessutom en array av booleans för att markera de positioner i svaret som är "tagna". Observera att koden är inkomplett och skriven direkt från huvudet så se upp för stavfel och andra logiska missar från min sida: Tackar för hjälpen Hultan jag strular runt med en del lösningar men din borde ju fungera och gör det säkert, är nog bara jag som klantar till det hela :) tack! Så djä... löjligt att hålla på med sån här elementa i VB.net , Fy Fae.. för Vb.net Jag undrar om du vet vad du pratar om just nu faktiskt... "Interjuvade en del proffs i min sons bekantskapskretas ." Onkel... Vad är det VB .Net kan som inte C# kan? lite nyfiken vad du syftar på här. XAdjo, hoppasdes få det skriftlig o inte via länk samt motivationer... :-) indexerade properties.. (inte indexers) Hum... Ok men som sagt det är ju oxå syntax mässiga saker som du löser smidigare i C# (mitt tycke) Hade inget konkret, därför länken(små och STORA bokstäver lättare intellisense) Nu orkade jag inte läsa igenom länken så mycket, men det jag bland annat tänkte på var att man har lättare att skriva vb.net kod utan editor pga. att inte behöva tänka på stora/små bokstäver. dessutom har du en with som du inte har i c#. Onkel. Johan: ><b>Sånt skriver man med 10 rader kod i de flesta prog utom det idiotiska Vb.net . </b>Going insane!
Jag försöker vinna ett krig mot en uppgift jag har men hitintills har det bara kostat mig avdragna hårstrån och allmän frustration :( Det är kanske bara jag som fastnat i tankebanorna så tänkte kolla om någon av er därute kan hjälpa en snart hårlös kille.
Uppgiften är att tillverka ett spel som skall slumpa fram nummer mellan 0 och 10 i fem stycken usercontroler som jag skapat. userkontrollerna består av en textbox och en label och properties så att användaren kan ange ett nummer i textboxen och det därefter sätts en färg i labeln beroende på om det är rätt nr på rätt plats(grönt=rätt nummer rätt plats. gult=rätt nr felplats,rött=fel nr), fel nr eller rätt nr men fel plats.
Jag loopar igenom de olika usercontrollerna med de framslumpade talen (de framslumpade talen sparas i en property kallad slumptal i varje usercontroll). Och nu till problemet(äntligen?) "rätt nr på rätt plats" är inga problem och heller inte "fel nummer" men det där med "rätt nr på felplats" ställer till det för om det bara ingår en 1a i den framslumpade serien så visas det även "rätt nummer fel plats" färg om jag tex gissar på fyra 1or i rad det skall ju bara visas gult för en av ettorna och rött för de övriga ettorna.
Har försökt med en funktion som räknar hur många gånger ett tal förekommer i den framslumpade serien ex antal 1or är 3 och försöker sedan med hjälp av detta öka en variabel varjegång talet sätts till någonting för att sedan om variabeln överstiger antalet gånger som talet förekommer sätta övriga förekomster av talet till "fel nummer" det funkar till en viss del men det blir aldrig rätt hur jag än gör!!!!nån som har några tips?!
Ok, tackar hjärtligt på förhandSv: Going insane!
<code>
private enum ResultEnum
None
Green
Yellow
Red
end enum
dim answer(4) as integer ' Detta representerar den korrekta lösningen
dim value(4) as integer ' Detta representerar användarens svar
dim result(4) as ResultEnum ' Vilken färg ska platsen ha?
dim checked(4) as boolean ' Array för att hålla reda på vilka platser som är kontrollerade
dim i as integer
dim j as integer
' Sätt in kod här för att generera svaret till arrayen answer()
' Sätt in kod här för att visa användargränssnittet
' Sätt in kod här för att läsa av användarens svar till arrayen value()
' Nollställ vissa värden (behövs nog egentligen inte)
for i=0 to 4
result(i)=ResultEnum.None
checked(i)=false
next i
' Kontrollera vilka som är helt korrekta
for i=0 to 4
if value(i)=answer(i) then
result(i)=ResultEnum.Green
checked(i)=true
end if
next i
' Kontrollera vilka som är på fel plats men som finns i lösningen (och som
' ännu inte är kontrollerade)
for i=0 to 4
if result(i)=ResultEnum.None then
for j=0 to 4
if i<>j andalso value(i)=answer(j) andalso checked(j)=false then
result(i)=ResultEnum.Yellow
checked(j)=true
end if
next j
end if
next i
' Sätt resten till ResultEnum.Red
for i=0 to 4
if result(i)=ResultEnum.None then result(i)=ResultEnum.Red
next i
</code>
Som sagt, detta är nedskrivet utan att ha testat koden så den är nog inte felfri men kanske hjälper den något...Tackar så jätte mycket för hjälpen
Sv: Tackar så jätte mycket för hjälpen
Sånt skriver man med 10 rader kod i de flesta prog utom det idiotiska Vb.net .
Interjuvade en del proffs i min sons bekantskapskretas . "Vad tycker Ni om .net köret."
Svar: "Dyrt, onödigt, krångligt och framför allt, för inte utvecklingen framåt. C# och C++ är det ultimata."
Tycker synd om all vb.net nissar som blivit inlurade i denna MS bluff
och tror att dom kan göra karriär med detta skitredskap.
Så kommer som ett brev på posten. Säg nått konkret Sven. "Tid/pengar Utvecklingstid Krånglar till det elementär."Sv: Tackar så jätte mycket för hjälpen
>"Dyrt, onödigt, krångligt och framför allt, för inte utvecklingen framåt. C# och C++ är det ultimata."
C# ger för övrigt samma maskinkod som vb.net, det är bara syntaxen som skiljer. vb.net kan lite som c# itne kan, C# kan lite mer som inte vb.net kan. Båda ingår i .NET tänket.
Så... Vad dillar du om egentligen?
Och: kan vi få se motsvarande kod i något annat språk på tio rader? Skulle inte tro att det blir så stor skillnad faktiskt (iaf. inte som du inte skippar konstanterna, börjar lägga flera instruktioner på samma rad etc.)Sv: Tackar så jätte mycket för hjälpen
Är du säker på att de var proffs då? Med tanke på detas svar? ;-)
Jag tror dessa proffs menade egentligen punkt två i svaret. "Krångligt" och då i frågasätter jag ju självklart ordet Proffs igen, för hade de vart proffs hade de inte ens svarat ordet krångligt och det är just krångligt som ger svar på resterande ytliga argument Dyrt och onödigt. Dock i frågasätter jag också hur de kan se C# som icke krångligt, dyrt när det är är lite krångligare än VB .Net för dem som faktiskt bara kan VB och inte vill gå in på C spåret.
Mvh JohanSv: Tackar så jätte mycket för hjälpen
Mvh JohanSv: Tackar så jätte mycket för hjälpen
men jaja, strunt samma.
För skillnaderna är mer syntaxmässiga inte så mkt funktionella. Det VB .Net har som C# inte har är mer
enklare förstådda syntax. Och det är just det som skilljer språk från varandra, så VB .Net kan inte göra något funktionellt som du inte kan göra i C#.
mvh JohanSv: Tackar så jätte mycket för hjälpen
public property penis(index as integer) as string
... hur man nu skriver getters o setters i vb ...
end property
i c# kan du bara ha indexers medan i vb/vb.net kan du ha multipla proppar med olika returtyper som är indexerade..
för att göra samma sak i c# måste du skapa flera kasser med varsin indexer och använda dessa som proppar på klassen som ska exponera de indexerade propparna..
använder du en vb.net assembly med sånna proppar i och anropar från c# så ser du dessa proppar som metoder eftersom c# inte har stöd för det , eller snarare , vb.net fejkar det till proppar i editorn
//Roger Sv: Tackar så jätte mycket för hjälpen
Du kan ju hämta med index på samma sätt fast nyttja metod. Dock inte sätta utan att skicka in värden eller nyttja en this[....] hantering. I C# har du ju [] och () för att visa skillnaden. I VB .Net kör man ju med () hela tiden vilket i mina ögon bara kan snurra till det för en API designer.
Men visst är det skillnad, men inget man kommer sakna om man skulle byta språk från VB .Net till C#
Fast smaken är som baken.
Det jag mer var ute efter var en stor skillnad saker du inte kan bygga i C#, exempelvis har ju C# unsafe mode och inte VB .Net. Var mer ute efter en sådan markant skillnad. Resten är faktiskt dialekter så jag anser fortfarande att VB .Net inte har saker C# inte skulle kunna bygga sig runt, medans C# har fler saker VB .net inte kan bygga runt. typ...
mvh JohanSv: Tackar så jätte mycket för hjälpen
Kom faktiskt på en sak
Lock i C# hanteras annorlunda i VB med Monitor
/JohanSv: Tackar så jätte mycket för hjälpen
Sv: Tackar så jätte mycket för hjälpen
Nja men vi har using. (Kommer dock i Vb .Net i om version 2.0) vet ej om width är inkluderat?
Men vad jag menar är att detta är mer syntax än funktionalitet. Skillnader i språket om vi inta pratar dialekter är exepelvis pointers (unsafe mode) som du faktiskt inte kan bygga i VB .Net, witdh är ju rätt onödigt i sig då det inte direkt medför en funktionell fördel, mer än lite syntax mässiga.
You create an instance in a using statement to ensure that Dispose is called on the object when the using statement is exited. A using statement can be exited either when the end of the using statement is reached or if, for example, an exception is thrown and control leaves the statement block before the end of the statement.
The object you instantiate must implement the System.IDisposable interface.
Example
// cs_using_statement.cs
// compile with /reference:System.Drawing.dll
using System.Drawing;
class a
{
public static void Main()
{
using (Font MyFont = new Font("Arial", 10.0f), MyFont2 = new Font("Arial", 10.0f))
{
// use MyFont and MyFont2
} // compiler will call Dispose on MyFont and MyFont2
Font MyFont3 = new Font("Arial", 10.0f);
using (MyFont3)
{
// use MyFont3
} // compiler will call Dispose on MyFont3
}
}
Mvh JohanSv: Tackar så jätte mycket för hjälpen
Jag vet redan om att c# är bättre, säger bara att de som kommer ifrån vb* har det lättare med vb.net pga. saker som att apa och APA är samma i vb.net, eller att de fortfarande kan förlita sig på with etc. ;)Sv: Tackar så jätte mycket för hjälpen
Ja jisses, har läst igenom min kod igen och ser inte riktigt vad som föranleder SvenPon:s ilska. Som vanligt...Det enda som är VB.Net specifikt är AndAlso, resten av koden kan direkt klippas in i VB6. Vad är det du gnäller om Sven?