Название может показаться немного запутанным, но я хочу создать класс, объявить общедоступный int со значением по умолчанию 0, затем внутри класса Program I навсегда изменить значение этой переменной в функции, и если я напечатаю это значение с помощью другой функции, оно напечатает значение, установленное в первой функции. Например:
using System;
{
class Global
{
public int variable = 0;
}
class Program
{
static void Main(string[] args)
{
Global test = new Global();
test.variable = 10;
//it makes no sense in this code to use another function,
//but in my other project it does
Function();
Console.ReadLine();
}
static void Function()
{
Global test = new Global();
//should print 10
Console.WriteLine(test.variable);
}
}
}
Просто измените метод на
void Function(Global instance)
и вызовите его с помощьюtest.variable = 10; Function(test);
и удалитеGlobal test = new Global();
из этого метода.С вашим текущим образцом сделайте переменную статической
public static int variable = 0;
Вы создаете новый глобальный экземпляр, используя
new
, что означает, что он снова начинается с zed. Там, где вы объявляете переменную, определяется ее область действия! Рекомендуемое чтение: Область действия переменных в C# также новый оператор (справочник по C#)<99298898512939>>Also rename Global coz not suitable to WhatIsTheGoalOfMyClass: Naming Convention in c# • C# Naming Conventions • C# Coding Standards and Naming Conventions • Соглашения о кодировании C# (Руководство по программированию на C#)
Конечно; вы вызвали эту путаницу для себя, назвав класс Global, хотя на самом деле он вообще не является глобальным
Контекст того, что находится в вашем другом проекте, вероятно, даст лучшее представление о том, чего вы пытаетесь достичь. Не могли бы вы опубликовать это? Пример, который вы привели здесь, не имеет смысла, и я подозреваю, что вы, возможно, задаете неправильный вопрос. Чем лучше контекст, тем лучше ответы.