Heim  >  Artikel  >  Backend-Entwicklung  >  C#.net-Allgemeinwissenspunkte, die oft verwechselt werden

C#.net-Allgemeinwissenspunkte, die oft verwechselt werden

巴扎黑
巴扎黑Original
2016-12-19 16:44:101697Durchsuche

1. Könnten Sie mir bitte den Unterschied zwischen Klassen und Strukturen in .NET erklären?
Antwort: Strukturen und Klassen haben eine allgemeine Syntax, Strukturen sind jedoch eingeschränkter als Klassen. Eine Struktur kann keinen Standardkonstruktor deklarieren, da vom Compiler eine Kopie der Struktur erstellt und zerstört wird, sodass kein Standardkonstruktor und -destruktor erforderlich ist. Strukturen sind Werttypen, daher haben Änderungen an Strukturvariablen keinen Einfluss auf ihre ursprünglichen Werte, während Klassen Anwendungstypen sind und eine Änderung der Werte ihrer Variablen ihre ursprünglichen Werte ändert. Verwenden Sie das Schlüsselwort Struck, um eine Struktur zu deklarieren, und das Schlüsselwort class, um eine Klasse zu deklarieren. Wenn Sie eine Struktur an eine Methode übergeben, wird diese als Wert und nicht als Referenz übergeben. Im Gegensatz zu Klassen können Strukturen ohne Verwendung des Schlüsselworts New instanziiert werden. Klassen können Schnittstellen implementieren.
2. Was sind die notwendigen Bedingungen für einen Deadlock? Wie kann man es überwinden?
Antwort: Das System verfügt über unzureichende Ressourcen, die Reihenfolge der fortschreitenden Prozesse ist falsch und die Ressourcen werden nicht ordnungsgemäß zugewiesen. Eine Ressource kann jeweils nur von einem Prozess verwendet werden und die Ressource ist blockiert Zu diesem Zeitpunkt wurde die Ressource nicht freigegeben. Wenn ein Prozess Ressourcen erhält, kann er nicht zwangsweise entzogen werden, bevor sie aufgebraucht sind.
3. Können Schnittstellen Schnittstellen erben? Kann eine abstrakte Klasse eine Schnittstelle implementieren? Kann eine abstrakte Klasse von einer Entitätsklasse erben?
Antwort: Schnittstellen können Schnittstellen erben, abstrakte Klassen können Schnittstellen implementieren und abstrakte Klassen können Entitätsklassen erben, aber es gibt eine Bedingung: Die Bedingung ist, dass die Entitätsklasse einen klaren Konstruktor haben muss.
4. Kann Konstruktor vererbt werden? Kann es überschrieben werden?
Antwort: Der Konstruktor kann nicht vererbt werden, also kann er nicht überschrieben werden.
Kann die String-Klasse vererbt werden?
Antwort: Da die String-Klasse eine letzte Klasse ist, kann sie die String-Klasse nicht erben.
5. Wenn ein Thread eine Methode eines Objekts eingibt, können andere Threads die Methode des Objekts eingeben?
Antwort: Nein, auf die Methoden eines Objekts kann nur ein Thread zugreifen.
6. Verwenden Sie die effektivste Methode, um zu berechnen, was 8 entspricht?
Antwort: 2<<3. Kann C# direkt auf den Speicher zugreifen?
Antwort: Diese Frage ist schwer zu beantworten, und es ist auch eine große Frage. Aber Sie können solche Fragen stellen. C# kann den Speicher direkt bedienen, C# kann jedoch einen unsicheren Zeiger verwenden. In .net wird die Funktion Garbage Collection verwendet. In C# können Sie die finalize-Methode jedoch nicht direkt verwenden, sondern rufen die finalize()-Methode der Basisklasse im Destruktor auf.
7. Verfügt das Array über eine Length()-Methode? Verfügt String über diese Methode?
Antwort: Es gibt keine solche Methode im Array, aber es gibt dieses Attribut und diese Methode in der Zeichenfolge.
8. Was ist der Unterschied zwischen Fehler und Ausnahme?
Antwort: Fehler bedeutet, dass die Wiederherstellung nicht unmöglich, aber sehr schwierig ist. Ausnahme bedeutet ein praktisches oder Implementierungsproblem, was bedeutet, dass das Programm nicht normal ausgeführt werden kann.
9. Sprechen Sie über den Unterschied zwischen „final“, „final“ und „finalize“?
Antwort: Final wird zum Deklarieren von Attributen, Methoden und Klassen verwendet. Dies gibt an, dass Attribute unveränderlich sind, Methoden nicht überschrieben werden können und Klassen nicht vererbt werden können.
Schließlich ist der Teil der Anweisungsstruktur zur Ausnahmebehandlung aufgeführt, der immer ausgeführt wird.
Finallize stellt eine Methode der Objektklasse dar. Bei der Ausführung im Garbage Collection-Mechanismus wird die Methode des recycelten Objekts aufgerufen.
10, Was ist der Unterschied zwischen HashMap und Hashtable?
Antwort: HashMap ist eine einfache Implementierung von Hashtable. Alle nicht-threadsicheren Implementierungen implementieren die Map-Schnittstelle. Der Hauptunterschied besteht darin, dass der HashMap-Schlüsselwert leer und null sein kann und die Effizienz höher sein kann als die von Hashtable .
11. Was ist der Unterschied zwischen Sammlung und Sammlungen?
Antwort: Collection ist die übergeordnete Schnittstelle der ****-Klasse. Collections ist eine Hilfsklasse für die ****-Klasse. Sie bietet eine Reihe statischer Methoden zum Suchen, Sortieren und Threading verschiedener ****. Klassen. Sicherer Betrieb.
12. Was ist Delegation in C#? Ist eine Veranstaltung eine Provision?
Antwort: Ein Delegate ist eine sichere Methode ähnlich einem Funktionszeiger, aber er ist viel sicherer als ein Zeiger. Er kann eine Methode als Parameter an eine andere Methode übergeben, die als Referenz auf eine Funktion verstanden werden kann. Das Ereignis ist ein Nachrichtenmechanismus, es ist eine Art Delegation, und die Delegation hat keinen Methodenkörper.
13. Was ist der Unterschied zwischen Override und Overload?
Antwort: Überschreiben bedeutet Überschreiben der Methode der Basisklasse, und der Methodenname, der Rückgabetyp, der Parametertyp und die Anzahl der Parameter müssen mit denen der Basisklasse übereinstimmen.
Überladen bedeutet auch, die Methode der Basisklasse zu überschreiben, aber solange der Methodenname derselbe ist, kann alles andere anders sein.
14. Wenn Sie Variablenwerte in einer BS-Struktur übertragen müssen, können Sie keine Sitzungs-, Coole- und Anwendungsmethoden verwenden.
Antwort: this.server.Transfer,Querystring.
15. Kann der C#-Indexer-Implementierungsprozess nur auf Basis von Zahlen indiziert werden?
Antwort: Nein, es kann jeder Art sein.
15. Kann der C#-Indexer-Implementierungsprozess nur auf Basis von Zahlen indiziert werden?
Antwort: Nein, es kann jeder Art sein.
16. Wie verwende ich Neu?
Antwort: Es gibt drei Typen: Die erste ist die Instanziierung, z. B.: New Class()
Das zweite ist, dass public new die Basisklassenmethode verbirgt
Das dritte ist, dass jeder Typparameter in der generischen Klassendeklaration einen öffentlichen Konstruktor ohne Argumente haben muss.
17. Wie kopiere ich ein Array in Arraylist?
Antwort: Foreach (Objekt o in Array), ArrayList.Add (0)
Es gibt viele chinesische Methoden. Denken Sie nach.
18, Überblick über Reflexion und Serialisierung?
Antwort: Reflexion: Es ist immer noch schwierig, eine Definition von Emission zu geben. Lassen Sie mich zunächst über mein Verständnis sprechen. Reflection stellt Kapselungsassemblys, Module und Typobjekte bereit. Sie können Reflection verwenden, um dynamisch Instanzen von Typen zu erstellen, Typen an vorhandene Objekte zu binden oder Typen von vorhandenen Objekttypen abzurufen und dann Methoden des Typs aufzurufen oder auf Felder und Eigenschaften zuzugreifen.
Serialisierung: Der Prozess der Konvertierung eines Objekts in ein Format zur Übertragung über ein anderes Medium. Serialisieren Sie beispielsweise ein Objekt, übertragen Sie das Objekt mithilfe von HTTP zwischen dem Client und dem Server über das Internet und rufen Sie das Objekt mithilfe der Deserialisierung aus dem Stream am anderen Ende ab.
19, Const und ReadOnly?
Antwort: Const wird verwendet, um Konstanten während der Programmierung zu deklarieren, und ReadOnly wird verwendet, um Laufzeitkonstanten zu deklarieren.
20. Was sind die Gemeinsamkeiten und Unterschiede zwischen UDP- und TCP-Verbindungen?
Antwort: TCP ist ein Übertragungssteuerungsprotokoll. Es bietet verbindungsorientierte und zuverlässige Byte-Stream-Dienste. Wenn Benutzer und Server miteinander interagieren, müssen sie eine TCP-Verbindung herstellen. TCP bietet Timeout-Wahlwiederholungs- und Datenüberprüfungsfunktionen. UDP ist das User Datagram Protocol, ein einfaches Datagramm-orientiertes Übertragungsprotokoll und eine unzuverlässige Verbindung.
21. Wie versteht man Prozesse bzw. Threads?
Antwort: Ein Prozess ist eine Programmlaufeinheit, die größer als ein Thread ist. Dies sind alles Systemlaufeinheiten, die vom Betriebssystem wahrgenommen werden. Es muss mindestens einen Prozess in einem Programm geben, und es muss mindestens einen Thread geben Die Aufteilung der Threads ist kleiner als die eines Prozesses. Der Prozess verfügt über eine unabhängige Speichereinheit, und die Threads teilen sich den Speicher, wodurch die Ausführungseffizienz des Programms erheblich verbessert werden kann gleichzeitig ausgeführt.
22, ASP. NET-Seiten?
Antwort: QueryString, Sitzung, Cookies, Anwendung, server.Transfer, respose.redictor
41. Was ist verwalteter Code? Was ist ein stark typisiertes System? Was ist Ein- und Auspacken? Was ist Überlastung? Was sind die Erklärungen für CTS, CLS und CLR?
Antwort: Anwendungsdomäne: Dies ist die Isolationsgrenze für Sicherheit, Zuverlässigkeit, Isolation, Versionskontrolle und Deinstallation. Die Anwendungsdomäne wird normalerweise vom Laufzeithost erstellt und bietet eine sicherere und vielseitigere Verarbeitungseinheit.
Verwalteter Code: Code, der mit dem kompilierten CLR-Spracheditor entwickelt und geschrieben wurde, wird verwalteter Code genannt.
Boxing und Unboxing: Dabei handelt es sich um den impliziten Prozess der Konvertierung eines Werttyps in einen Referenztyp. Der entgegengesetzte Prozess ist das explizite Unboxing.
CTS ist das Common-Type-System, CLS ist die Common-Language-Spezifikation und CLR ist die Common-Language-Runtime.
Starkes Typsystem: Jede Variable und jedes Objekt muss einen deklarierten Typ haben.
41. Was ist der Unterschied zwischen Werttypen und Referenztypen?
Antwort: Der Werttyp wird auf dem Stapel gespeichert. Durch Ändern seines Werts wird der ursprüngliche Wert der Variablen nicht geändert, während der Wert des Referenztyps auf dem Stapel gespeichert wird und die Adresse, auf die er sich bezieht, auf dem Stapel gespeichert wird. Wenn Sie ihren Wert ändern, ändert sich auch der ursprüngliche Wert der Variablen. Werttypen dürfen keine Nullwerte enthalten, nullfähige Typen können dem Werttyp l jedoch Null zuweisen.
42. Welche Authentifizierungsmethoden gibt es in ASP.net?
Antwort: Fenster, Formulare, Reisepass
43. Erklären Sie die Bedeutung und Funktionen von UDDI und WSDL?
Antwort: UDDI ist ein einheitliches Beschreibungsintegrationsprotokoll. Es handelt sich um eine Reihe webbasierter, verteilter Implementierungsstandards für die Informationsregistrierung, die von WEB-Diensten bereitgestellt werden. Es ermöglicht auch die Webdienstregistrierung für das Unternehmen selbst, um andere Protokollstandards zu ermöglichen entdecken und darauf zugreifen können. Bietet eine standardbasierte Spezifikation zum Beschreiben und Erkennen von Diensten sowie eine Reihe internetbasierter Implementierungen.
WSDL ist eine XML-basierte Schnittstelle zur Beschreibung von WEB-Diensten.
44. Was ist Seife?
Antwort: Es ist das Simple Access Protocol. Es handelt sich um ein Protokoll zum Austausch von Informationen und zur Implementierung von Fernaufrufen in einer verteilten Umgebung. Es handelt sich um ein XML-basiertes Protokoll. Die Verwendung von SOAP ermöglicht unabhängig vom Transportprotokoll, in der Regel jedoch vom HTTP-Protokoll, die Kommunikation aller Arten von Objekten oder Codes untereinander auf jeder Plattform und in jeder Sprache. Es handelt sich um ein leichtes Protokoll.
45. Wie stellt man eine ASP.net-Seite bereit?
Antwort: Es gibt einen Veröffentlichungsmechanismus in vs2003 und vs2003, der veröffentlicht und dann kopiert und bereitgestellt werden kann.
Vs2005 kann direkt am entsprechenden Standort bereitgestellt werden.
46. Wie versteht man den Garbage-Collection-Mechanismus in .net?
Antwort: Der Garbage-Collection-Mechanismus in .NET bezieht sich auf das Recycling und die Freigabe von Speicher durch das Referenzprogramm. Jedes Mal, wenn ein Objekt mit dem Schlüsselwort new erstellt wird, muss die Laufzeitbibliothek dafür Speicher aus dem verwalteten Heap zuweisen, da der Speicherplatz begrenzt ist und der Garbage-Collection-Mechanismus schließlich ungenutzten Speicher zurückgewinnen muss. Speicher freigegeben, wiederverwendet.
47. Was sind die drei Grundprinzipien der Objektorientierung?
Antwort: Kapselung, Vererbung, Polymorphismus.
48. Was ist die Basisklasse für alle Klassen in .NET?
Antwort: Objekt.
50. Müssen Objekte implementiert werden, die mit foreach durchlaufen und auf die zugegriffen werden kann?
Antwort: Sie müssen die IEnumerable-Schnittstelle und die GetEnumerator()-Methode implementieren.
51. Was ist der Unterschied zwischen Heap und Stack?
Antwort: Heap ist ein Heap, der durch manuelle Vorgänge zugewiesen und freigegeben wird. Sein Speicherbereich ist ein großer freier Speicherbereich.
Stapel ist ein Stapel, der vom Betriebssystem automatisch zugewiesen und freigegeben wird. Der Platz auf dem Stapel ist begrenzt. Während der Kompilierung des Programms erfolgt die Speicherzuweisung für Variablen und Funktionen auf dem Stack sowie die Übergabe von Parametern bei Funktionsaufrufen zur Laufzeit auf dem Stack.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn