ecnf

Karteikarten für die 1. Prüfung HS 2019 Dozent Yves Senn FHNW

Karteikarten für die 1. Prüfung HS 2019 Dozent Yves Senn FHNW


C. A.
Diese Karteikarten behandeln grundlegende und fortgeschrittene Konzepte der Programmierung in C# auf Universitätsniveau. Sie decken Themen wie LINQ, Datentypen, Parameterübergabe, Klassen, Methoden und die Common Language Runtime (CLR) ab. Entwickler und Studierende profitieren davon, um ihr Verständnis von C# und .NET zu vertiefen und typische Programmierungsfehler zu vermeiden.
Flashcards
86
Students
2
Language
German
Category
Computer Science
Level
University
Created / Updated
25.10.2019 / 06.11.2019

Flashcards

Welche Probleme kann Boxing und Unboxing mit sich bringen?

Beim boxing versteht man vielleicht nicht mehr was dahinter steckt.

Vergleichbarkeit ist nicht mehr da (nicht mit "==" überprüfbar)

Nenne 4 Vorteile von managed Code.

  1. Carbage Collection
  2. Ram automatisierung wird gemaneget
  3. Nicht auf Speicherbereich Zugriff, welche ausserhalb meiner Runtime liegen
  4. Durch diesen Zugriffsschutz kann niemand bei mir Schaden anrichten und  ich nicht bei andern

2 Vorteile von native code

  • Perfomance kann unter Umständen verbessert werden
  • Hat die zusätzlichen Zwischenstufen nicht

1 Nachteil von Native Code

Ist nicht OS unabhängig

Was ist ein Assembly?

Für jede .NET Programmiersprache existiert ein MSIL-Variante. So wird die Sprachinteroperabilität gewährleistet.

Namespaces in C# können...

Parameter werden in C# standardmässig…

Welchen Wert hat x am Ende?

void Method(string x)

{

  x = "Morgen";

}

var x = "Guten";

Method(x);

Welchen Wert hat x am Ende?

void Method(string x)

{

  x += " Morgen";

}

 

var x = "Guten";

Method(x);

Die Modifier "protected" und "readonly" haben eine ähnliche Aufgabe.

Was ist das C#-Äquivalent des Java-Keywords "final"?

Deklarieren Sie einen Delegate-Type für einen Clicked-Event. Beachten Sie die C#-Konventionen.

delegate void SomeEvent(objectsource, SomeEventArgs e);

Deklarieren Sie einen Event mit dem Namen "Clicked". Beachten Sie die C#-Konventionen.

publicvoidFireSaySomething(stringwords){SaySomethingEvent(words) // not safe, couldhavenolisteners!SaySomethingEvent?.Invoke(words);}

Action delegates haben einen Rückgabetyp!

Func delegates verwendet man für folgende Aufgaben:

Wie kann mit LINQ der einzige "Peter" in einer Liste gefunden werden?

Wie kann mit LINQ der einzige "Peter" in einer Liste gefunden werden?

Welches Problem weist das folgende Stück Code auf?

int[] array = {1,2};
for (var i=0; i<array.Length: i++)
   Console.WriteLine(array[i].Sum());

int ist ein primitver Datentyp und deshalb gehr der Methodenaufruf hier nicht. das ist nur für objekte.

Jedes Delegate ist  ein Multicast(able)-Delegate

Welchen Output generiert der folgende Code?

string[] names = {"peter","kurt","helga"};
var query = names.OrderBy(n => n).Where(n => n.Contains("e"));
query = query.OrderBy(n => n);
query = query.Where(n => n.Contains("p"));

Was sind Probleme dieses Stück Codes?
 

var y = float.Parse(someNumberAsStringReadFromAFile);

 

(Nicolas fragen)

Random rand = new Random();
var randomSeq = Enumerable.Repeat(0,100000).Select(i => rand.Next());

Dieser Code ist sehr langsam, weil alle 100'000 Zufallszahlen auf einmal berechnet werden.

Welchen Text gibt folgender Code aus?

class Plant {public virtual void A() { Console.Write("Plant,"); } }
class Tree:Plant {public new virtual void A() { Console.Write("Tree,"); } }
class AppleTree{public virtual void A() { Console.Write("AppleTree,"); } }
class GoldenDelicious{public override void A() { Console.Write("GoldenDelicious,"); } }

 

var t1 = new Plant(); t1.A();
t1 = new Tree(); t.A();
t1 = new AplleTree(); t.A();
t1 = new GoldenDelicous(); t.A();

var t2 = new AppleTree(); t2.A();
t2 = new GoldenDelicious(); t1.A();

GoldenDelicious, GoldenDelicoius? Nicolas fragen

Welche Aussagen über LINQ sind korrekt?

Die Modifier "protected" und "readonly" haben eine ähnliche Aufgabe.

Welche Datentypen sind Vaue Types?

Was bedeutet immutable?

Object nach initialisierung ist nicht mehr veränderbar

Was sind Probleme dieses Stück Codes:

var x = float.Parse(someNumberAsStringReadFromAFile);

Was versteht man unter „Managed Code"?

Programmcode, der im .NET Framework unter der .NET-Laufzeitumgebung abläuft, wird als Managed Code bezeichnet.

Was versteht man unter dem Begriff  „Native Code“?

ativer Code (auch Maschinensprache oder Maschinencode) ist ein kompilierter Programmcode, der mit dem Befehlssatz eines bestimmten Prozessors ausgeführt wird.

Was versteht man unter CLR?

Was macht CLR so besonders?

Common Language Runtime:
CLR bietet Runtime Freatures an wie  "automatic memory management" und "exception handling" an.
CLR ist sprachen neutral.
CLR konvertriert IL in native code.

Was versteht man unter Language Interoperability?

Language Interoperability ist die Fähigkeit von zwei verschiedenen Programmiersprachen, als Teil desselben Systems nativ zu interagieren. Die Interoperabilität ist von Vorteil, da verschiedene Programmiersprachen für bestimmte Aufgaben optimiert sind und durch ihre Kommunikation bessere Systeme entstehen können.

Welche Bedingungen müssen .NET Programme erfüllen, damit diese „Language Interoperabel“ sind?

Objektmodelle wie CORBA and COM müssen verwendet

Was ist der Hauptunterschied zwischen Structs und Klassen

Klasse ist ein Referenztyp
Die Variable speichert also nur eine Referenz. Mehrere Variablen können auf die gleichen Daten referenzieren. Kopiert man eine Variable, verändert man die andere mit.


Struct ist ein Value-Typ
Die Variable speichert also die effectiven Daten. Wenn die struct zu einer neuen Variable assigned wird kopiert man diese. Das heisst ändert man die eine Variable, hat das keinen Einfluss auf die andere.
 

Was sind named arguments?

Mit named arguments können Sie ein Argument für einen bestimmten Parameter angeben, indem Sie das Argument dem Parameternamen und nicht der Position des Parameters in der Parameterliste zuordnen.

Was sind Optional arguments?

Mit optionalen Argumenten können Sie Argumente für einige Parameter weglassen.

Unterschied zwischen Conts und Read Only

Der Unterschied besteht darin, dass ein readonly menmber zur Laufzeit in einem Konstruktor initialisiert werden kann und auch so initialisiert werden kann, wie sie deklariert wurden.

Eine const ist eine Konstante zur Kompilierungszeit, während readonly es ermöglicht, einen Wert zur Laufzeit zu berechnen und im Konstruktor oder Feldinitialisierer festzulegen.

Das Unified-Type System führt dazu, dass Value-Type und Reference-Type dieselbe Basisklasse haben

Ein Delegate kann keine statischen Methoden aufrufen

Study