Was ist der Unterschied, falls vorhanden?Unterschied zwischen 'File.Open()' und 'new FileStream()'
Antwort
Keine.
File.Open ist, intern, nichts anderes als:
public static FileStream Open(string path, FileMode mode, FileAccess access, FileShare share)
{
return new FileStream(path, mode, access, share);
}
Wenn Sie nicht über die Überlastung benutzen, die eine Dateiablage und Fileshare gibt es das für Sie gibt (mit FileShare.NONE und Fileaccess .Write an append oder ReadWrite andernfalls).
Das ist gesagt, dies ist ein Implementierungsdetail, nicht Teil der documentation. Technisch könnte eine zukünftige .NET Framework-Version eine andere Implementierung verwenden, obwohl ich das unwahrscheinlich finde.
File.Open()
ist eine bequeme Methode. Intern ist es implementiert als:
public static FileStream Open(string path, FileMode mode, FileAccess access, FileShare share)
{
return new FileStream(path, mode, access, share);
}
Diese Art der Duplizierung ist sehr selten im .NET-Framework. Aber es gibt eine Geschichte darüber, erzählt von Krzysztof Cwalina in this lecture. Sie haben eine Usability-Studie zu einer frühen Version des Frameworks durchgeführt und eine Gruppe erfahrener (aber ansonsten .NET-agnostischer) Programmierer gebeten, mit den Klassen FileStream und StreadReader/Writer Code zu schreiben.
Es lief nicht gut, sie haben eine Fehlerrate von 100%. Sie reagierten, indem sie der System.IO.File-Klasse Methoden hinzufügten, indem sie den Ansatz "Am wahrscheinlichsten, dass sie in die Grube des Erfolgs fallen" verwendeten.
Coole Video BTW, wenn Sie überhaupt in die Gründe sind, die das Framework so aussieht wie es aussieht.
Bessere echte Antwort: Die File.Open() -Methode ruft den FileStream-Konstruktor auf und übergibt Werte für FileAccess und FileShare (wenn Sie sie nicht angeben), die am ehesten das Richtige tun. Was ist FileAccess.ReadWrite und FileShare.None.
Können Sie den Link aktualisieren? – brumScouse
Aktualisiert. Vorsicht, es ist eine 500-MB-ZIP-Datei. –
Die Verbindung ist wieder unterbrochen – HeyJude
- 1. Was ist der Unterschied zwischen new/delete und :: new/:: delete?
- 2. Unterschied zwischen BigDecimal.ONE und new BigDecimal ("1")
- 3. Unterschied zwischen `new function() {this.x = 1}` und `{x: 1}`
- 4. Mockito: Unterschied zwischen thetThrow (Exception.class) und thetTrow (new Exception())
- 5. Unterschied zwischen MyClass.prototype = new Object() und MyClass.prototype = Objekt
- 6. C#: Unterschied zwischen '+ = anEvent' und '+ = new Eventhandler (anEvent)'
- 7. Was ist der Unterschied zwischen create und new?
- 8. Unterschied zwischen der Instantiierung mit "this.new InnerClass()" und "new InnerClass()"
- 9. Was ist der Unterschied zwischen "int * a = new int" und "int * a = new int()"?
- 10. Gibt es einen Unterschied zwischen "where: class, new()" und "wo: new()"?
- 11. OOP: Unterschied zwischen ArrayList al = new ArrayList() und List al = new ArrayList()?
- 12. Was ist der Unterschied zwischen "return new ModelAndView (" redirect: surveys.html ");" und "return new ModelAndView (" surveys.html ");"
- 13. Unterschied zwischen Liste <string> lst = new List() und List <> lst = new List()
- 14. Gibt es einen Unterschied zwischen `new object()` und `new {}` in C#?
- 15. Was ist der Unterschied zwischen new in einem Konstruktor und new in einer Member-Deklaration?
- 16. was ist der Unterschied zwischen iShell shell = new ... und Shell Shell = new
- 17. Unterschied zwischen FileStreamResult und FilePathResult?
- 18. Unterschied zwischen einem Byte-Array und MemoryStream
- 19. Unterschied zwischen 'Objekt obj = new Object()' und 'Objekt obj = null' in statische und nicht statische Funktion
- 20. Was ist der Unterschied zwischen Rubys Puts und Schreibmethoden?
- 21. Unterschied zwischen Vorzeichen & und *?
- 22. VBA: Unterschied zwischen & und +
- 23. Unterschied zwischen "**/* /" und "** /"?
- 24. Unterschied zwischen $ # und $ {# @}
- 25. Unterschied zwischen = und: =
- 26. Unterschied zwischen '#', '%' und '$'
- 27. MySQL: Unterschied zwischen ', `,' und '
- 28. C++ Unterschied zwischen '//' und '///'
- 29. Unterschied zwischen String.Empty und ""
- 30. Unterschied zwischen `% in%` und `==`
... neben seinen Geschwistern File.OpenRead und File.OpenText – Powerlord