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?
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 […]
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); […]
Est-ce qu’il y a boxing / unboxing quand une méthode accepte un paramètre out / ref d’un ValueType?
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 […]
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, […]
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 […]
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 […]