Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Prism Break unter .NET? (https://www.delphipraxis.net/53232-break-unter-net.html)

Master_BB 12. Sep 2005 18:59


Break unter .NET?
 
Hallo,
ich programmiere jetzt schon seit einiger Zeit nur noch
mit dem .NET Framework und mir ist aufgefallen das
ich bisher immernoch das alte Break an und an benutze
das es so nicht im Framework gibt sondern nur
im Borland zeug für .NET.

Weiß jemand wie man Breaks in .NET umsetzt?

Greetz

Robert_G 12. Sep 2005 19:34

Re: Break unter .NET?
 
In C#? break
In VB? Exit
In Chrome? break
In Brainfuck.Net? [Ersetze mit Irgendwas, dass ausgesprochen einem staubigen Taschentuchextrakt entsprechen würde]
Man könnte glatt annehmen, dass break weiterhin nur ein Sprung ist. ;)

Master_BB 12. Sep 2005 19:38

Re: Break unter .NET?
 
in Delphi .NET meine ich.
wenn ich dort Break in den code schreibe
und mit der maus drüber gehe dann steht da Borland.xxx.xxx
und das heißt ich wandle nicht mehr nur auf
dem .NET Framework

Robert_G 12. Sep 2005 19:50

Re: Break unter .NET?
 
Zitat:

Zitat von Master_BB
in Delphi .NET meine ich.
wenn ich dort Break in den code schreibe und mit der maus drüber gehe dann steht da Borland.xxx.xxx und das heißt ich wandle nicht mehr nur auf dem .NET Framework

Krass! :shock:
Kannst du mal eine kleine Beispiel Assembly (D.Net Package) anhängen?
Muss einfach nur das hier drinstecken:
Delphi-Quellcode:
type
  SomeClass = class
  public
    procedure DoSomething;
  end;

implementation

procedure SomeClass.DoSomething;
begin
  while true do
    break;
end;

Speedmaster 12. Sep 2005 19:59

Re: Break unter .NET?
 
Da fiel mir was auf, als ich mir mal angucken wollte wie Brainf*ck unter .NET aussieht:
http://bluesorcerer.net/esoteric/bf.html

Zitat:

When executing the Brainf*ck program prime.b (or the Ook# equivalant prime.ook) the execution times on the same machine using the same OS for primes up to 200 are on average as follows (per May 26th 2002) :

* ms.net : 9 seconds.
* mono : 30 seconds.
* mint : 2150 seconds.

Memory usage always stays the same for all environments, about 30KB.
Ich hoffe die Daten haben sich inzwischen geändert, den sonst kann man ja Mono Vergessen! :mrgreen:

Christian S. 12. Sep 2005 20:05

Re: Break unter .NET?
 
Hallo!

Als Assembly wird Borland.System.Delphi angezeigt. Folgender Delphi-Code (etwas komplizierter, damit die Optimierung nicht stört)
Delphi-Quellcode:
interface

type
  SomeClass = class
  public
    procedure DoSomething(a : Boolean);
  end;

implementation

procedure SomeClass.DoSomething(a : Boolean);
begin
  while a do
    if a = true then
      break;
end;
ergibt laut Lutz Roeder's Reflector:
Code:
public void DoSomething(bool a)
{
      while (a)
      {
            if (a)
            {
                  return;
            }
      }
}
Ist also "unauffällig".

Grüße
Christian

tommie-lie 12. Sep 2005 20:23

Re: Break unter .NET?
 
Zitat:

Zitat von Christian S.
Delphi-Quellcode:
// ...
  while a do
    if a = true then
      break;
end;
ergibt laut Lutz Roeder's Reflector:
Code:
public void DoSomething(bool a)
{
      while (a)
            if (a)
                  return;
}

Break ist aber nur in diesem Fall gleichbedeutend mit return, oder irre ich?

Speedmaster 12. Sep 2005 20:28

Re: Break unter .NET?
 
Nicht ganz, mit return kann man auch Werte zurückgeben( Wieder ein Vorteil von C# ). Allerdings gibt es auch break!

jbg 12. Sep 2005 20:30

Re: Break unter .NET?
 
Zitat:

Zitat von Speedmaster
Nicht ganz, mit return kann man auch Werte zurückgeben( Wieder ein Vorteil von C# ).

Mit Result kann man den Rückgabewert ständig ändern und muss nicht laufend eine Hilfsvariable nutzen (Wieder ein Vorteil von Delphi.NET). Das gibt sich nichts.

Christian S. 12. Sep 2005 20:31

Re: Break unter .NET?
 
Äh, ja. Hier noch ein anderes Beispiel:
Delphi-Quellcode:
function SomeClass.DoSomething(a : Boolean) : Integer;
begin
  result := 2;
  while a do
    if a = true then
      break;
  result := result * 2;
end;
Code:
public int DoSomething(bool a)
{
      int num1 = 2;
      while (a)
      {
            if (a)
            {
                  break;
            }
      }
      return (num1 << 1);
}
Auch keine bösen Sachen drin :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz