C # Generika - Seltsames Interview Frage [geschlossen]

8

Ein Interviewer argumentierte mich " Genrics sind nicht vollständig Genrics ",

Er lieferte das Beispiel (Parameter int k, int d sind nicht generisch)

%Vor%

Er hat mich gefragt, ob ich noch beweisen kann, dass es Generika sind, ich darf die nächste Runde aufnehmen. Ich wusste nicht, was er von mir erwartet und was er wirklich meint, indem er ein solches Beispiel zeigt.

Hilf mir, wie ich mich einem so seltsamen Interview stellen kann?

Vielen Dank im Voraus.

    
udana 22.10.2009, 22:47
quelle

13 Antworten

23

Manche Leute sind verrückt. Du solltest lächeln und nicken.

    
Amy B 22.10.2009 22:52
quelle
13

Tag ... träumen ... bei ... Computer ....

"Haben Sie ihm die Frage gestellt?"

"Ja"

"Hat er dir gesagt, dass es BS war?"

"Nein"

"Hast du ihn auf StackOverflow gefunden und gefragt, wie man die Frage beantwortet?"

"Ja"

"Gut, jetzt wissen wir. Holen Sie den nächsten Kerl hier"

"Bwah ... ha ... ha ..." wiederhole ...

    
Gary 22.10.2009 23:39
quelle
11

Die Tatsache, dass k und d immer int sind, macht die Methode nicht weniger generisch, es bedeutet nur, dass diese Parameter immer int sind, unabhängig vom Typ von a , b & amp; c .

    
ChrisF 22.10.2009 22:54
quelle
4

Unter der Annahme, dass die Interviewfrage eine echte Frage ist, googelte ich "Generics sind nicht" + c # und bekam diese:

  • Generics sind keine C ++ - Vorlagen
  • Generika sind nicht nur Compiler Magie
  • Generika sind nicht kovariant
  • Generika sind nicht nur ein Konstrukt von die C # -Sprache; Generika sind definiert mit der CLR.
  • Generika sind nicht auf die Funktion beschränkt Definitionen
  • Generika werden nicht nur verwendet Sammlungen
  • Generics sind nicht auf Klassen beschränkt
  • C # tut eine Art von Löschung, aber es ist nicht so streng wie Java, und die Grund ist, weil Generika keine sind C # -spezifische Eigenschaft, aber eher a Feature, das in .NET funktionieren muss, die mehrere Sprachen unterstützt.

Ich habe überhaupt keine Übereinstimmungen für "Generika sind nicht vollständig generisch" oder "Generika sind nicht immer generisch".

Also da. Viel Spaß.

    
Robert Harvey 22.10.2009 23:13
quelle
3

All a generic is ist ein parametrisierter Typ. Ich weiß nicht, worauf sich Ihr Interviewer einlässt. Er behauptet, dass die Methode nicht vollständig generisch ist, weil nicht alle Methodenparameter einen generischen Typ haben?

Sie müssen nicht für alle Parameter den gleichen Parametertyp verwenden, noch müssen alle Parametertypen generisch sein.

    
Robert Harvey 22.10.2009 22:51
quelle
3

Vielleicht meinte er, dass a , b und c vom selben Typ sein müssen, aber das ist dumm.

    
Letterman 22.10.2009 23:00
quelle
2

Soweit es mich betrifft, ist dies eine generische Methode, da sie einen Typparameter hat. Dass nicht alle Parameter vom generischen Typ sind, spielt keine Rolle.

    
Rik 22.10.2009 22:54
quelle
2
  

Er hat mich gefragt, ob ich noch beweisen kann, dass es Generika sind, ich darf die nächste Runde aufnehmen. Ich wusste nicht, was er von mir erwartet und was er wirklich meint, indem er ein solches Beispiel zeigt.

Es klingt so, als ob dieser Interviewer nach den Antworten sucht, die hier gegeben werden - wenn Ihre Formulierung seiner Frage seine Absicht erfasst, dann argumentiert er nicht, dass Generika nicht generisch sind, er fragt, ob Sie die "Generizität" der angegebene Methode.

Wie mehrere andere festgestellt haben, handelt es sich um eine generische Methode, da der Benutzer ein sichtbares Attribut der Funktion (in diesem Fall den Typ der ersten drei Parameter) zu einem späteren Zeitpunkt angeben kann. Die Tatsache, dass k und d nicht-generische Parameter sind, scheint einfach ein Ablenkungsmanöver zu sein.

Diese Aussage zu bestätigen, würde mehr oder weniger beweisen, dass Sie keine verzerrte Vorstellung davon haben, was "generisch" bedeutet - in diesem Fall eine Spezialisierung einer generischen Funktion auf den Anrufzeitpunkt.

    
Mike Burton 22.10.2009 23:51
quelle
1

Hmmm, spätes Posting, aber besser spät als nie! : -)

Angenommen, Ihr Interviewer kennt seine Sachen, ist das wirklich die Art von Frage, die ein Interviewer Sie stellt, um folgendes zu tun:

  1. Teste dein Wissen.
  2. Teste dich mit einer Aussage, von der er weiß, dass sie falsch ist, um zu sehen, wie du darauf reagieren wirst und wie du darauf antworten wirst.
  3. Beteiligen Sie sich an einer Debatte, damit Sie sich entspannen und frei über ein Thema sprechen können, mit dem Sie hoffentlich vertraut sind.

Ein guter Interviewer wird alle drei erreichen, während der nicht so gute Interviewer einfach nach Möglichkeiten sucht, Sie zu fangen, weil er gebeten wird, zu viele Kandidaten zu interviewen.

Wenn Sie am Ende des Tages die Antwort nicht wissen oder die Frage nicht verstehen, sagen Sie es besser im Interview, und wenn Sie mit einer Aussage nicht einverstanden sind, betrachten Sie sie als eine Gelegenheit, sich zu entspannen und Nehmen Sie an einer Diskussion teil, anstatt einfach Fragen während des Interviews zu beantworten.

Und was es wert ist, ist die Antwort, dass die beschriebene Methode eine generische Methode ist, unabhängig davon, ob einige Parameter einen festen Typ haben oder nicht. Der Beweis ist in der Deklaration selbst, wo die generische Syntax den Compiler effektiv anweist, die generischen Argumente zu berücksichtigen.

    
S.Robins 12.01.2010 12:51
quelle
0

@Udana, könnte es sein, dass der Interviewer versucht hat, Ihre Antwort zu kontrollieren, indem er Ihnen eine Frage stellt, die keine Bedeutung hat?

Ich hatte einmal ein Interview, in dem die Testfrage gefragt wurde: "Was ist die Standardmargengröße einer Winform?". Ich antwortete: "Ich weiß es nicht und es ist mir egal, da ich jeden beliebigen Wert im Konstruktor einstellen kann"

Am Ende des Interviews sagte mir der Interviewer, dass die Frage ein Trick war, um zu sehen, wer raten würde und wer ehrlich wäre, wenn sie etwas nicht wüssten.

    
Andrew Keith 23.10.2009 00:19
quelle
0

Die Frage wörtlich nehmen:

  1. Zeigen Sie ihm, dass Sie mit T als String, int aufrufen und einen Button sagen können.
  2. Zeigen Sie ihm den kompilierten generischen Code - ich denke, mit ILDASM können Sie die generische Methode für Referenztypen sehen. Sie können auch die abgestimmten Versionen der generischen Methode für Werttypen sehen, aber ich kann mich nicht erinnern, wie. Vielleicht kann jemand anderes.
Martin Clarke 07.04.2010 11:58
quelle
0

Ich wäre lieber daran interessiert, die Frage zu hören, die er gestellt hat, oder die Antwort, die Sie gegeben haben, BEVOR diese Frage auf Sie gefeuert wurde !!!.

Im Allgemeinen werden solche (seltsame / vage) Fragen vom Interviewer ausgelöst, wenn der Befragte in einem Thema Unbehagen zeigt oder eine unberechenbare Antwort gibt. Das zwingt den Interviewer, den Interviewpartner durch Befragung oder überraschende Dinge zu Fall zu bringen.

    
Manish Basantani 05.03.2011 20:42
quelle
0

Hey, es ist eine gute Kopf Kitzeln Frage in Generika. Der Interviewer wollte nur Ihre Einarbeitung in Generika wissen. Der verwendete Methodenname dient lediglich dazu, den Typ anzugeben, wenn Sie die Methode aufrufen. Dies kann während des Anrufs angegeben werden oder nicht. wie

%Vor%

Dies wird nur beim Kompilieren übernommen. Daher sind die 3 Parameter, die angegeben werden, nur vom selben Typ.

%Vor%

also, wir geben nur an, dass es stark typisiert ist.

    
venky 07.06.2010 07:02
quelle

Tags und Links