c#

C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert.
5
Antworten

Konvertieren des Werts in DataTable in ein Zeichenfolgenarray in c #

Ich habe eine DataTable, die eine einzelne Zeile enthält. Ich möchte diese DataTable-Werte in ein String-Array konvertieren, so dass ich über den String-Array-Index auf die Spaltenwerte dieser DataTable zugreifen kann Zum Beispiel, wenn meine Da...
18.03.2013, 21:53
5
Antworten

Elegante Methode zum Erstellen einer kommagetrennten Liste und zum Entfernen von nachem Komma [duplizieren]

Wenn ich kommagetrennte Listen erstelle, hasse ich, wie ich das nachlaufende Komma abhacken muss. Gibt es einen besseren Weg? Ich mache das ziemlich oft so auf der Suche nach Meinungen. %Vor%     
07.03.2013, 21:27
2
Antworten

Wie bekomme ich eine unabhängige Kopie eines XDocuments?

Ich versuche, ein neues XDocument wie folgt zu erstellen: %Vor% Ich habe jetzt xml , was ich hätte wäre eine eigenständige Instanz eines Dokuments, weil ich die Zeichenfolge aus dem Originaldokument extrahiert und daraus eine neue erstellt...
03.04.2013, 08:57
7
Antworten

Linq wählt die Übereinstimmungsliste aus der anderen Listenleistung aus

Ich habe eine Klasse wie diese %Vor% List<Category> um 15k Zeile und List <Product> um 40k Zeile. Ich mache mit LINQ so %Vor% Ich möchte wissen, dass es dafür eine bessere Leistung gibt. Daten könnten in anderen Fällen...
17.08.2015, 06:52
3
Antworten

Ändern der Sammlung bei Verwendung einer foreach-Schleife in c # [duplizieren]

Grundsätzlich möchte ich einen Gegenstand aus einer Liste entfernen, während er in der foreach-Schleife ist. Ich weiß, dass dies möglich ist, wenn ich eine for-Schleife verwende, aber für andere Zwecke würde ich gerne wissen, ob dies mit einer...
14.07.2009, 08:49
3
Antworten

C #: Stellt sicher, dass DateTime.Now eine GMT + 1 Zeit zurückgibt

Ich verwende DateTime.Now , um etwas nach dem heutigen Datum zu zeigen, und wenn ich lokal arbeite (Malta, Europa) erscheinen die Zeiten korrekt (natürlich wegen der Zeitzone), aber natürlich wenn ich es auf meinen Hosting Server (USA) hochlad...
10.07.2009, 09:38
7
Antworten

___ answer359529 ___

Geben Sie eine neue Instanz von Person zurück, die eine Kopie von %code% anstelle von %code% selbst in Get () ist. Sie benötigen eine Methode, um eine Tiefenkopie eines Person-Objekts zu erstellen. Dadurch werden sie nicht nur gelesen, sondern sie unterscheiden sich von denen in der ursprünglichen Liste.

%Vor%     
___ answer359507 ___

Tatsächlich ist %code% bereits Readtonly . Das bedeutet, dass Sie keine Elemente in der zugrunde liegenden Sammlung durch andere Elemente ersetzen können. Das heißt, Sie können die Referenzen nicht auf die %code% -Objekte ändern, die in der Sammlung enthalten sind. Der Typ %code% ist jedoch nicht schreibgeschützt, und da es sich um einen Referenztyp handelt (d. H. Ein %code% ), können Sie seine Member über die Referenz ändern.

Es gibt zwei Lösungen:

  • Verwenden Sie %code% als Rückgabetyp (der bei jeder Rückgabe eine Kopie des Werts erstellt, so dass der ursprüngliche Wert nicht geändert wird - was übrigens kostspielig sein kann)
  • Verwenden Sie schreibgeschützte Eigenschaften des Typs %code% , um diese Aufgabe auszuführen.
___ answer359566 ___

Sie können einen Deepclone für jedes Element in der Liste erstellen und niemals Referenzen auf Ihre ursprünglichen Elemente zurückgeben.

%Vor%     
___ answer359533 ___

%code% ist nur gelesen

%code% ist eine neue Kollektion, die nicht von %code% abhängig ist. Der Fehler, den Sie gemacht haben, ist, dass Sie diese Zeile gedacht haben %code%
würde nur eine der Listen ändern, wenn Sie in Wirklichkeit das Objekt %code% ändern.
Die beiden Kollektionen sind unterschiedlich, sie haben zufällig dieselben Artikel.
Um zu beweisen, dass sie unterschiedlich sind, versuche, Elemente aus einer der Listen hinzuzufügen und zu entfernen, und du wirst sehen, dass die andere nicht betroffen ist.

    
___ answer359545 ___

Zunächst einmal ist Ihre Liste in Ihrer Klasse öffentlich, sodass niemand daran gehindert wird, direkt auf die Liste zuzugreifen.

Zweitens würde ich IEnumerable implementieren und das in meiner GetEnumerator-Methode

zurückgeben %Vor%     
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ answer359578 ___

Wenn Ihr Personenobjekt ein reales Objekt ist, sollten Sie eine unveränderbare Version in Erwägung ziehen.

%Vor%

Auf diese Weise ist es nicht möglich, den Inhalt der einmal erstellten Instanz zu ändern. Daher ist es nicht wichtig, dass vorhandene Instanzen in mehreren Listen wiederverwendet werden.

    
___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ tag123generics ___ Generika sind eine Form von parametrischer Polymorphie, die in einer Reihe von Sprachen gefunden wird, einschließlich .NET-Sprachen, Java und Swift. ___ tag123ienumerable ___ IEnumerable und sein generisches Gegenstück IEnumerable sind .NET-Schnittstellen zum Iterieren (oder Aufzählen) einer Sammlung von Elementen. ___ qstntxt ___

Warum sind die Listen %code% und %code% in der Methode %code% des folgenden Codes auf die selbe Sammlung?

%Vor%

Können wir dieses Verhalten ändern, ohne den Rückgabetyp von %code% zu ändern?

Danke

    
___ answer359515 ___

Sie verweisen nicht auf dieselbe .Net-Sammlung, sondern auf dieselben %code% -Objekte. Die Linie:

%Vor%

kopiert alle Person-Elemente von %code% in die Liste %code% . Das Wort "Kopien" bedeutet hier Kopien der Referenzen. Also, Ihre Liste und %code% zeigen zufällig auf die gleichen %code% -Objekte.

%code% ist per Definition immer schreibgeschützt. Die Objekte darin können jedoch wie in diesem Fall veränderbar sein.

    
___

Warum sind die Listen list1Instance und p in der Methode Main des folgenden Codes auf die selbe Sammlung? %Vor% Können wir dieses Verhalten ändern, ohne den Rückgabetyp von List1.Get() zu ändern? Danke     
11.12.2008, 14:20
5
Antworten

Erstellen einer benutzerdefinierten Fehlerseite in Umbraco CMS

Ich arbeite an einer Kundenseite, die Umbraco als CMS verwendet. Ich muss eine benutzerdefinierte 404-Fehlerseite erstellen. Ich habe versucht, es in der IIS-Konfiguration zu tun, aber Umbraco überschreibt das. Kann jemand eine benutzerdefini...
26.09.2008, 15:13
4
Antworten

Was wird an das Schlüsselwort lock übergeben?

Was ist der Unterschied (falls vorhanden) zwischen der Verwendung von ? %Vor% oder %Vor% ? Gibt es einen Unterschied in der Leistung? Stil? Verhalten?     
23.02.2010, 15:26
3
Antworten

.NET 4.0 Kovarianz

Als Antwort auf eine weitere Frage Ich habe versucht, folgendes zu tun. Ich glaube nicht, dass ich diese Frage richtig interpretiert habe, aber ich frage mich, ob das Folgende irgendwie möglich ist (meine Versuche sind gescheitert) und wenn ni...
21.02.2012, 16:45