Инициализатор поля не может ссылаться на нестандартное c поле, метод или свойство в loginController - PullRequest
1 голос
/ 25 апреля 2020

Я новичок в c# MVC и пишу класс randomGenarator для генерации случайного числа

public class RandomGenarator
{

    public int rand()
    {
        Random rnd = new Random();
        int  i = rnd.Next(100);
        return i;
    }
}

, но когда я пытался использовать это в классе My Controller

public class LoginController : Controller
{ 
    RandomGenarator rnd = new RandomGenarator();
    int i = rnd.rand();

    public ActionResult Index()
    {

        return View();
    }
 }

Я столкнулся с этой ошибкой:

"Инициализатор поля не может ссылаться на нестандартное c поле, метод или свойство"

Ответы [ 3 ]

2 голосов
/ 25 апреля 2020

Это потому, что вы не пытаетесь вызвать метод int i = rnd.rand(); внутри конструктора метода (ИЛИ) в вашем контроллере.

public class LoginController : Controller
{ 
    private RandomGenarator rnd = null;

    public LoginController()
    {
       rnd = new RandomGenarator();
    }

    public ActionResult Index()
    {
     int i = rnd.rand();
     return View();
    }
}
0 голосов
/ 25 апреля 2020

Ошибка имеет подсказки, так как вы изучаете, давайте разберем ее.

A field initializer

Поле int i. Это поле в классе, а не свойство, потому что нет метода получения или установки.

cannot reference

Вы не можете использовать = в этом поле

the nonstatic

Другая сторона равенства, указанная цель не является c. Если это где stati c, то тогда?

field, method, or property

Это цель, на которую я 'ссылаюсь', которая является методом rand () для нестационарного c объекта rnd.

Так что ошибка говорит о том, что вы не можете установить i на что-то, что не является c.

0 голосов
/ 25 апреля 2020

Переместите свой код внутрь public ActionResult Index().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...