Laden...
LaTino
myCSharp.de - Experte
33
Themen
3.003
Beiträge
Letzte Aktivität
vor 3 Jahren
Dabei seit
03.04.2006
Alter
49
Beruf
Softwareentwickler
Herkunft
Thüringen
Erstellt vor 3 Jahren

ILIst ist ein bisschen Kanone auf den Spatzen, der vorgeschlagene Indexer kommt deiner Anforderung am nächsten:


class Test
{
    private string[] _array = new string[] { "Element 1", "Element 2", "Element 3" };
    public string this[int index] 
    {
        get => _array[index];
        set 
        {
            onItemChanged(index);
            _array[index] = value;
        }
    }
    
    private void onItemChanged(int index) => Console.WriteLine(index); // todo
}
class Program
{
    static void Main(string[] args)
    {
        Test test = new Test();
        test[1] = "Ersetze dieses Element";
    }
}

Natürlich vor dem Zugriff auf's Array immer schön prüfen, ob es das Element überhaupt gibt.

Grüße,

LaTino

Erstellt vor 4 Jahren

Nachtrag:
Ich bin seit September nach fast 20 Jahren Visual Studio auf Rider umgestiegen. Für so ein Gewohnheitstier, wie ich es bin, ein riesiger Schritt. Jetzt, ein Vierteljahr später, sind die schlimmsten Entwöhnungserscheinungen erledigt und ich muss sagen, ich bin ziemlich happy mit der IDE. Ich kann aber nicht sagen, wie gut oder schlecht sich Windows.Forms oder WPF damit entwickeln lassen, ist nicht mein Anwendungsfall. Wer die Möglichkeit hat, sollte Rider ruhig mal eine Chance geben.

LaTino
(der nächste XPS kann dann eine Developer Edition mit Linux werden :evil🙂

Erstellt vor 4 Jahren

Hi,

gerade dreimal versucht, einen Text zu posten, der einen Emoji enthielt (eingefügt über Win+.). Dreimal Fehler - nur dieses eine Zeichen entfernt, und es ging.

Es handelte sich um U+1F644 (das Augenrollen).

Grüße,

LaTino

Erstellt vor 4 Jahren

Seit die Möglichkeit existiert, nutze ich anstelle der Kreditkarte Android Pay, verknüpft mit Paypal. So landen die Informationen zu Kreditkarte oder Bankkonto nicht mehr beim Zahlungsempfänger, und es ist nur noch eine Frage, ob man eben Paypal traut oder nicht. Kann jeder für sich entscheiden, und ich verstehe auch jeden, der's nicht tut.

Ganz ohne Kreditkarte würde mir mein Alltag inzwischen sehr schwer fallen, ich benutze die eigentlich seit 2006/07 als bevorzugtes Zahlungsmittel. Auch wenn das in Deutschland immer noch nicht überall geht (im Jahr 2020, in einer Pandemie, kriegt man immer noch "wir können nur EC-Karte", "nein, kontaktlos geht leider nicht" zu hören...).

LaTino

Erstellt vor 4 Jahren

.NET Core / .Net 5
Editor: Visual Studio Code (keine Lizenzgebühren, frei verfügbar, alle gängigen Betriebssysteme)

Für das, was du deinen Schülern beibringen willst, brauchst du keine IDE. Ein Editor reicht, dann liegt der Fokus auch auf dem Programmieren und nicht auf der IDE (mal abgesehen davon, dass ich dir die Kompatibilitätsprobleme von Projektmappen zwschen 2017 und 2019 nicht abkaufe. Die sind identisch.) Ich erinnere mich dunkel, dass wir in der Java-Vorlesung erstmal zwei Stunden mit EInführung in Eclipse verbracht haben. Unnötig, umständlich, langweilig.

Die Hinweise hier gehen alle in die Richtung, dass die Nutzung der moderneren, schlankeren, leichter zugänglichen Variante von .NET empfohlen wird. Und das zu Recht. Offen gesagt, lesen sich deine Antworten dagegen eher so, dass du dir einen ganz anderen Aufwand sparen möchtest. Nämlich den, etwas neues zu lernen.

Grüße,

LaTino (selber hin und wieder Kursleiter)

Erstellt vor 4 Jahren

Das hängt stark davon ab, was du mit Resharper am häufigsten tust. Den von dir erwähnten Zweck zB nutze ich (private Lizenz seit 2014) überhaupt nicht, bzw. er ist mir unwichtig.
Für die von mir am häufigsten genutzten Funktionen gibt es schlicht keine Alternative, von Rider vielleicht abgesehen.

Und die gut 100 Euro im Jahr ist das Stück Software auf jeden Fall wert. Das sind sehr grosszügig gerechnet 5 gesparte Stunden Arbeitszeit pro Jahr, ab denen sich das lohnt (realistisch deutlich weniger).

LaTino

Erstellt vor 4 Jahren

Update der Package Microsoft.EntityFrameworkCore von 3.1.1 auf 3.1.5 hat das Problem beseitigt. Ich habe in den Readmes keinerlei Hinweis auf eine Änderung diesbezüglich gefunden. Nicht die erste Änderung in net core 3.1, die unsere Build-Pipeline zerschießt. Ärgerlich, unnötig.

LaTino

Erstellt vor 4 Jahren

So, ich habe noch einmal etwas gebuddelt. Das Problem haben wir uns mit einer Abhängigkeit auf Microsoft.EntityFrameworkCore eingetreten. Das NuGet-Package listet die drei Abhängigkeiten auch auf - die Merkwürdigkeit ist also, dass die Bibliotheken unter Windows fehlen, und nicht, dass sie unter Linux auftauchen.

Interessanterweise:


dotnet new console -o Example
cd Example
dotnet add package Microsoft.EntityFrameworkCore
dotnet publish ./Example.csproj -o ../publish -c Release 
ls ../publish

..führt dazu, dass die Bibliotheken auch unter Windows im Ausgabeverzeichnis liegen.

Es liegt also vermutlich am Projekt, wobei ihr mir nicht wirklich helfen könnt. Ich werde die Abhängigkeiten mal Stück für Stück entfernen / wieder einfügen und schauen, ob das einen Effekt hat. Sollte ich über die Lösung stolpern, melde ich mich wieder.

LaTino

Erstellt vor 4 Jahren

Nein. Allerdings ist es tatsächlich dasselbe (nicht nur das gleiche) Problem.

LaTino

Erstellt vor 4 Jahren

Enschuldige, dass ich erst jetzt antworte.

gibt es diese Unterschiede auch wenn nur

  
dotnet publish ./PROJECTNAME/PROJECTNAME.csproj -c Release  
  

verwendet wird?

Ja. Exakt dieselben drei Dateien.

Der Punkt, den ich nicht nachvollziehen kann, ist dieser hier:

Durch die Angabe der Ziel-Runtime --runtime win-x64 wird entweder "cross compiled" od. nicht. Daher kann es -- auch beeinflusst von den NuGet-Referenzen -- zu Unterschieden der Build-Ausgabe kommen.

Mein zugegeben unvollständiges Verständnis des Vorgangs ist, dass eben gegen die entsprechenden Bibliotheken der Zielplattform kompiliert wird. Die drei unter Linux eingebundenen Bibliotheken werden auch nicht genutzt - sonst würde das unter Windows erzeugte Ergebnis, dass diese Bibliotheken nicht hat, ja gar nicht laufen.

Ich hätte das als reine Unschönheit abgetan, allerdings verursachen die verschiedenen Ergebnisse einen Schluckauf in unserer Gitlab-Pipeline, der langsam echt störend wird.

Grüße,

LaTino

10 von 3.003 Beiträgen