Entwickler-Ecke
Basistechnologien - IntPtr in einer Klasse kapseln
Delete - Di 04.07.17 19:10
Titel: IntPtr in einer Klasse kapseln
- Nachträglich durch die Entwickler-Ecke gelöscht -
Ralf Jansen - Di 04.07.17 20:23
Anhand eines Beispiels ist das denke ich am einfachsten zu verstehen. Ich schreib mir sonst die Hände fusselig für eine eigentlich eher simple Sache :wink:
Ich nehme mal Pseudocode lose orientiert an deinem frDrive Code.
C#-Quelltext
1: 2: 3: 4: 5:
| using (var volume = Drive.GetVolume('c')) { volume.Eject(); } |
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| public static class Drive { public static IVolume GetVolume(char volume) { return new Volume(volume); } internal class Volume : IVolume { private readonly IntPtr handle; public Volume(char volume) { this.handle = myLovelyApiMethodForGettingAVolume(volume); } public bool Eject() { return myLovelyApiMethodForEjectingAVolume(handle); } public void Close() { myLovelyApiMethodForClosingAVolume(handle); } public void Dispose() { Close(); } } }
public interface IVolume : IDisposable { bool Eject(); void Close(); } |
Delete - Di 04.07.17 21:37
- Nachträglich durch die Entwickler-Ecke gelöscht -
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!