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:
-
charen Rust yCharen .NET tienen diferentes definiciones. En Rust, unchartiene 4 bytes de ancho y es un Unicode scalar value, pero en .NET, aChartiene 2 bytes de ancho y almacena el carácter usando la codificación UTF-16. Para más información, mirar la documentación decharen Rust. -
Mientras que en Rust, unit
()(una tupla vacía) es un valor expresable, el equivalente más cercano en C# seríavoidpara representar la nada. Sin embargo,voidno 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.ValueTuplese puede usar en C#, pero es muy poco común. A diferencia de C#, F# sí tiene un tipo unit similar a Rust. -
Mientras
voidyobjectno son tipos escalares (aunque tipos escalares comointson subclases deobjecten la jerarquía de tipos de .NET), se han incluido en la tabla anterior por conveniencia.
Mira también: