« Csharp 12 » : différence entre les versions

De Banane Atomic
Aller à la navigationAller à la recherche
Aucun résumé des modifications
Ligne 32 : Ligne 32 :
</kode>
</kode>


= [https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/method-parameters#ref-readonly-modifier ref readonly modifier] =
= [[Parameter_modifiers#ref_readonly|ref readonly modifier]] =
<kode lang='cs'>
var item = new Item("name");
ForceByRef(ref item);
 
static void ForceByRef(ref readonly Item item)
{
    item = new Item("new name"); // you can't assign a readonly variable
    item.Name = "new name";      // you can modify the object properties
}
</kode>

Version du 24 mai 2024 à 15:28

Links

Primary constructors

Cs.svg
public class Item
{
    public readonly string Name { get; }

    public Item (string name)
    {
        Name = name;
    }
}

// equivalent with a primary constructor
public class Item(string name)
{
    public readonly string Name { get; } = name;
}

Collection Expressions

Cs.svg
// initialization
int[] a     = [1, 2, 3];
List<int> l = [4, 5, 6];

// concat items from different collections with the spread element: ..e
int[] all = [.. a, .. l]; // [1, 2, 3, 4, 5, 6];

ref readonly modifier