Articles of out

Pourquoi ref devrait-il être utilisé pour les parameters de tableau en C #?

J’ai lu la page Passing Arrays Using ref and out (Guide de programmation C #) et je me demandais pourquoi nous aurions besoin de définir un paramètre de tableau comme paramètre ref alors qu’il s’agit déjà d’un type de référence. Les changements dans la fonction appelée ne seront-ils pas répercutés sur la fonction appelant?

Pourquoi un paramètre out ne peut-il pas avoir une valeur par défaut?

Actuellement, lorsque j’essaie de faire quelque chose dans une méthode qui prend un paramètre out, je dois atsortingbuer la valeur du paramètre out dans le corps de la méthode, par exemple: public static void TryDoSomething(int value, out bool itWorkerd) { itWorkerd = true; if (someFavourableCondition) { // if I didn’t assign itWorked variable before this […]

Impossible de passer des variables de types de base en tant que parameters out?

Je viens de remarquer que cela ne fonctionne pas: var dict = new Dictionary(); XContainer element; //… if (dict.TryGetValue(idx, out element)) { //… Puis j’ai essayé ceci: class A { } class B : A { } class Program { static void Main() { A a; a = Ret(); // no error, ok Ref(ref a); […]

Boxing et unboxing lors de l’utilisation des parameters out et ref

Est-ce qu’il y a boxing / unboxing quand une méthode accepte un paramètre out / ref d’un ValueType?

Pourquoi les méthodes d’iterator ne peuvent-elles pas prendre les parameters ‘ref’ ou ‘out’?

J’ai essayé cela plus tôt aujourd’hui: public interface IFoo { IEnumerable GetItems_A( ref int somethingElse ); IEnumerable GetItems_B( ref int somethingElse ); } public class Bar : IFoo { public IEnumerable GetItems_A( ref int somethingElse ) { // Ok… } public IEnumerable GetItems_B( ref int somethingElse ) { yield return 7; // CS1623: Iterators cannot […]

Console.ReadLine ajoute 48 à int

J’obtiens 48 quand j’entre 0 dans un ReadLine (). Est-ce un bug? class Program { static void Main(ssortingng[] args) { ssortingng name; int age; readPerson(out name, out age); } static void readPerson(out ssortingng name, out int age) { Console.Write(“Enter name: “); name = Console.ReadLine(); Console.Write(“Enter age: “); age = Console.Read(); Console.WriteLine(“Name: {0}; Age: {1}”, name, […]

C # PInvoke out déclaration de chaînes

Dans C # PInvoke, comment puis-je passer un tampon de chaîne afin que la DLL C le remplisse et retourne? Quelle sera la déclaration PInvoke? La déclaration de la fonction C est int GetData(char* data, int buflength); En C #, je l’ai déclaré comme [DllImport(DllName)] static extern Int32 GetData([MarshalAs(UnmanagedType.LPStr)]SsortingngBuilder receiveddata, Int32 buflen); Est-ce correct? Je […]

Quel est le but du mot clé “out” sur l’appelant (en C #)?

Quand une fonction C # a un paramètre de sortie, vous le précisez comme suit: private void f(out OutputParameterClass outputParameter); Cela indique qu’il n’est pas nécessaire d’initialiser le paramètre lorsque la fonction est appelée. Cependant, lorsque vous appelez cette fonction, vous devez répéter le mot clé out : f(out outputParameter); Je me demande à quoi […]