Frage

Ich bin nur neugierig ...

Ist es möglich, eine Variable in c # veröffentlichen?

Was ich meine ist, können Sie etwas tun:

...
string x = "billy bob";

//release variable x somehow

string x = "some other string";

//release variable x somehow

int x = 329;
...

... also im Prinzip erklären Sie die Variable mehrmals im gleichen Umfang.

Ist dies nicht möglich, in C # ist, welche Sprachen ist es möglich, in?

War es hilfreich?

Lösung

Sie können es mit Bereichen tun (losen Begriff, formal ich glaube, das eine Erklärung Raum sein würde), z.B. Folgendes ist vollkommen legal C # in einem Verfahren Körper:

{
    string x = "billy bob";    
}
{
    string x = "some other string";
}
{
    int x = 329;
}

Das mag ich aber nicht raten Code zu schreiben, macht es viel zu einfach Variablen in einer Methode verwirrt zu bekommen. Besser zu nutzen andere, beschreibende Namen, oder jeder in seine eigene Methode blockieren trennen.

Andere Tipps

Nein, das ist nicht möglich, in C # im gleichen Umfang - für die ich bin sehr dankbar. Es klingt wie ein Rezept für die Lesbarkeit Katastrophe. Wie Greg gezeigt hat, können Sie Ihre eigenen Bereiche innerhalb einer Methode nur für diesen Zweck einführen though.

Ich weiß nicht, welche Sprachen können Sie dies tun - schwach typisierten Sprachen werden oft können Sie beliebige Werte natürlich zuweisen, aber ich weiß nicht, von einer Sprache, die explizite Variablendeklarationen hat mit Typ-Information und ermöglicht auch eine Neudeklaration im gleichen Umfang.

Sie möchten vielleicht Eric Lippert jüngste Blog-Post lesen, das ist alles über Umfang . (Wenn Sie nicht bereits Erics Blog lesen, möchten Sie vielleicht ein paar Tage in Ihrem Kalender löschen und lesen Sie alle Rasten ... oder zumindest die, da er das C # Team. Bereiten Sie Ihre Meinung geblasen haben wiederholt.)

können Sie eine Zeichenfolge wieder verwenden:

string x = "billy bob";
x = "some other string";

Warum wollen Sie das tun?

Vielleicht können Sie dies tun:

object x = "billy bob"
x = "some other string";
x = 329;

wirft es dann, wie Sie mögen?

Sie können Variablen zuweisen, natürlich:

string s = "billy bob";
s = "something else";

Sie können keine Variablen im gleichen Umfang neu deklarieren:

// This is illegal:
string s = "billy bob";
string s = "foo"

Da Objekt die Wurzel des Typs System in .NET ist, können Sie etwas tun:

object o = "billy bob";
o = "foo";
o = 5;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top