vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Deklaration von Variablen in einer Schleife? 
Autor: icetea123
Datum: 01.11.08 16:50

.NET Code (egal welche Sprache) wird in die Zwischensprache MSIL übersetzt.
MSIL ist eine Art Objektorientierden Assemblers und sieht so aus (ein von mit Programmiertes Beispiel, aber ohne Schleife):

.assembly hello{}

.data myData = int32(12345)
.field public static int32 data at myData

.method static public string MyFile() il managed
{
call class [System]System.Diagnostics.Process [System]System.Diagnostics.Process::GetCurrentProcess()
call instance class [System]System.Diagnostics.ProcessModule [System]System.Diagnostics.Process::get_MainModule()
call instance string [System]System.Diagnostics.ProcessModule::get_FileName()
ret
}

.method static public float64 GetRandomNumber() il managed
{
newobj instance void [mscorlib]System.Random::.ctor()
call instance float64 [mscorlib]System.Random::NextDouble()
ret
}

.method static public void main() il managed
{
.entrypoint
.maxstack 20
.locals init([0] int32[] x,
[1] string y,
[2] int32 z,
[3] class [mscorlib]System.Random r,
[4] class [mscorlib]System.Exception e,
[5] class [System]System.Net.WebClient w)

ldc.i4.s 100

newarr [mscorlib]System.Int32
stloc.0

ldstr "Hallo World from IL!\nGib einen Wert ein:"
call void[mscorlib]System.Console::WriteLine(class System.String)

call string [mscorlib]System.Console::ReadLine()
stloc.1
.try
{
ldloc.1
call int32 [mscorlib]System.Int32::Parse(string)
stloc.2

ldloc.0
ldc.i4.0
ldloc.2
stelem.i4

ldloc.0
ldc.i4.0
ldelema [mscorlib]System.Int32

call instance string [mscorlib]System.Int32::ToString()

call void [mscorlib]System.Console::WriteLine(string)

leave.s END_TRY_CATCH // exit try block
}catch [mscorlib]System.Exception
{
stloc.s e // store exception thrown on
// the stack

// *************************************************
// Console.WriteLine(e.Message);
// *************************************************
ldloc.s e // load e
callvirt instance string [mscorlib]System.Exception
::get_Message()
call void [mscorlib]System.Console
::WriteLine(string)
leave.s END_TRY_CATCH // exit catch block
}
END_TRY_CATCH:

call float64 GetRandomNumber()
call void [mscorlib]System.Console::WriteLine(float64)



call int32 [mscorlib]System.Console::Read()

pop

//call string MyFile()
//call void [mscorlib]System.Console::WriteLine(string)

ldsfld int32 data
call void [mscorlib]System.Console::WriteLine(int32)

ret
}

Wenn du das Beispiel in eine Datei kopierst, und dann über ilasm.exe kompillierst, ensteht eine ganz gewöhnliche .NET-Exe. Andesrum kannst du jede beliebige .NET-Exe mit dem Tool ildasm.exe wieder dissammblieren, und es würde wieder obiger Code entstehen.

-----------------------------------
Betriebssystem: Schrott (Vista)
Entwicklungsumgebung: VS 2008

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Deklaration von Variablen in einer Schleife?1.257Christoph197201.11.08 13:55
Re: Deklaration von Variablen in einer Schleife?897ModeratorRalf Ehlert01.11.08 16:44
Re: Deklaration von Variablen in einer Schleife?712K081501.11.08 16:44
Re: Deklaration von Variablen in einer Schleife?701ModeratorRalf Ehlert01.11.08 16:48
Re: Deklaration von Variablen in einer Schleife?757icetea12301.11.08 16:50
Re: Deklaration von Variablen in einer Schleife? Teil 2624icetea12301.11.08 16:51
Re: Deklaration von Variablen in einer Schleife? Teil 2667Christoph197201.11.08 17:12
Re: Deklaration von Variablen in einer Schleife? Teil 2613ModeratorRalf Ehlert01.11.08 17:28

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel