forte74 Ответов: 1

Проблема с ref в C#


когда я запускаю этот код, я получаю
лучший перегруженный матч для ... имеет некоторые недопустимые аргументы.


using System;

namespace AccessModifiers
{
    public class ClassA
    {
        public int x = 100;

        public void Method1(ref int y)
        {
            Console.WriteLine("Method 1 ");
        }

       public  void Method2()
        {
            Method1(ref x);
        }
    }
    public class Program
    {

        public static void Main(string[] args)
        {

            ClassA c = new ClassA();

            c.Method1(ref 5);


        }
    }
}


Что я уже пробовал:

*****************************************************----------------------------------------------------------------------------------------*********************************

[no name]

У вас нет никакого метода с именем " ... " в любом месте вашего кода, так что вы не можете получить это сообщение об ошибке.
"*****************************************************----------------------------------------------------------------------------------------********************************* " это означает, что вы вообще ничего не пробовали, чтобы решить свою проблему. Нет простого поиска в google, и вы, вероятно, даже не потрудились взломать базовую книгу по программированию, которую вам сказали. Тогда вы будете знать ответ на действительно основные вопросы. Когда вы начнете делать то, что вам говорят, вы станете программистом, а не вампиром-помощником.

1 Ответов

Рейтинг:
12

Suvendu Shekhar Giri

Похоже, вы не очень внимательно следили за учебником.
Во-вторых, вы поделились неправильным сообщением или неправильным фрагментом кода. Из кода, которым вы поделились, вы должны получить сообщение примерно такого рода -

Цитата:
Аргумент ref или out должен быть присваиваемой переменной

Это означает, что вы не можете передать постоянное значение в качестве аргумента ref.

Итак, вместо
c.Method1(ref 5);

попробуйте следовать-
int myInt = 5;
c.Method1(ref myInt);


Надеюсь, это поможет.
Пожалуйста, дайте мне знать, если я что-то здесь упустил.
:)