Tipos Escalares
La siguiente tabla enumera los tipos primitivos en Rust y su equivalente en C# y .NET:
Rust | C# | .NET | Notas |
---|---|---|---|
bool | bool | Boolean | |
char | char | Char | Mirar la nota 1. |
i8 | sbyte | SByte | |
i16 | short | Int16 | |
i32 | int | Int32 | |
i64 | long | Int64 | |
i128 | Int128 | ||
isize | nint | IntPtr | |
u8 | byte | Byte | |
u16 | ushort | UInt16 | |
u32 | uint | UInt32 | |
u64 | ulong | UInt64 | |
u128 | UInt128 | ||
usize | nuint | UIntPtr | |
f32 | float | Single | |
f64 | double | Double | |
decimal | Decimal | ||
() | void | Void o ValueTuple | Mirar las notas 2 y 3. |
object | Object | Mirar la nota 3. |
Notas:
-
char
en Rust yChar
en .NET tienen diferentes definiciones. En Rust, unchar
tiene 4 bytes de ancho y es un Unicode scalar value, pero en .NET, aChar
tiene 2 bytes de ancho y almacena el carácter usando la codificación UTF-16. Para más información, mirar la documentación dechar
en Rust. -
Mientras que en Rust, unit
()
(una tupla vacía) es un valor expresable, el equivalente más cercano en C# seríavoid
para representar la nada. Sin embargo,void
no es un valor expresable, excepto cuando se usan punteros y código no seguro. .NET tieneValueTuple
, que es una tupla vacía, pero C# no tiene una sintaxis literal como()
para representarlo.ValueTuple
se puede usar en C#, pero es muy poco común. A diferencia de C#, F# sí tiene un tipo unit similar a Rust. -
Mientras
void
yobject
no son tipos escalares (aunque tipos escalares comoint
son subclases deobject
en la jerarquía de tipos de .NET), se han incluido en la tabla anterior por conveniencia.
Mira también: