Esto puede ser algo trivial, pero en C# ¿prefiere int o UInt16 al almacenar un puerto de red en una variable? Las clases de marco utilizan int al tratar con un puerto de red, aunque UInt16 representa realmente los valores válidos.¿Debo usar int o UInt16?
Respuesta
firmado (int
/short
etc, en lugar de que uint
/ushort
) tienen la ventaja de ser compatible con CLS, por lo que se recomienda a menos que tenga una buena razón.
Re int
vs short
- en la mayoría de casos es más eficiente para compute con int
(o uint
), ya que todos los operadores están optimizados para esto. Si solo está almacenando y recuperando, entonces esto no es un problema, por supuesto.
si tiene un procesador de 32 bits y usará un valor de 16 bits (para ahorro de memoria) se alineará con 32 bits. Así que creo que no es tan importante usar 16bit uint en lugar de 32bit de valor.
Excepto en una matriz, por supuesto. –
sí, eso es correcto – tga
- 1. ¿Debo usar byte o int?
- 2. Debo utilizar int o Int32
- 3. ¿Debo usar multiplicación o división?
- 4. ¿Debo usar Phobos o Tango?
- 5. ¿Debo usar alias o alias_method?
- 6. ¿Debo usar herencia o composición?
- 7. ¿Debo usar em o px?
- 8. ¿Debo usar eval() o call_user_func()?
- 9. ¿Debo usar CouchDB o SimpleDB?
- 10. ¿Debo usar Pilones o Pirámide?
- 11. ¿Debo usar Flash o Flex?
- 12. ¿Debo usar doble o flotar?
- 13. Debo usar DataInputStream o BufferedInputStream
- 14. ¿Debo usar ArrayList o IList
- 15. ¿Debo usar horquilla o hilos?
- 16. ¿Debo usar Meteor.startup() o $ (function() {})
- 17. ¿Debo usar AppDomain.CurrentDomain.BaseDirectory o System.Environment.CurrentDirectory?
- 18. C# bitwise shift en ushort (UInt16)
- 19. ¿Debo usar una INT grande o una INT regular en MySQL para almacenar una marca de tiempo?
- 20. ¿Debo escapar de un valor entero esperado usando mysql_real_escape_string o puedo simplemente usar (int) $ expectedinteger
- 21. ¿Debo usar Module :: Install o Module :: Build?
- 22. ¿Debo usar ApplyUpdates (0) o ApplyUpdates (-1)?
- 23. Debo usar Python 32bit o Python 64bit
- 24. ¿Debo usar `import os.path` o` import os`?
- 25. ¿Debo usar QCoreApplication :: processEvents() o QApplication :: processEvents()?
- 26. ¿Debo usar WCF o conectores crudos?
- 27. ¿Debo usar window.load o document.ready jQuery
- 28. ¿Debo usar window.onload o script block?
- 29. android view o surfaceView, ¿qué debo usar?
- 30. Numpy: ¿Debo usar newaxis o None?
Creo que los tipos sin firmar cumplen con CLS comenzando con 2.0. Ha pasado mucho tiempo desde que miré esto, así que podría estar equivocado. – JaredPar
@JaredPar - curiosamente, 'ushort' no genera una advertencia, pero' uint' sí (utilizando VS2008): "Advertencia Tipo de argumento 'uint' no cumple con CLS" –
@JaredPar - también, MSDN " Esta API no cumple con CLS. La alternativa compatible con CLS es Int32. " http://msdn.microsoft.com/en-us/library/system.uint16.aspx (también dice que para 4.0) –