如何在 C# 中使用另一个 class 更改变量
How to change variable from one class using another in C#
标题可能听起来有点混乱,但我想做的基本上是创建一个 class,
声明一个默认值为 0 的 public int,然后在 Program class 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);
}
}
}
如果您不想像这样进行注入,您可以创建静态 class:
public static class Global
{
public int variable = 0;
}
class Program
{
static void Main(string[] args)
{
Global.variable = 10;
}
static void Function()
{
Console.WriteLine(Global.variable);
}
}
或者您可以将 class 作为参数从您调用它的任何地方注入。
public class Global
{
public int variable = 0;
}
class Program
{
static void Main(string[] args)
{
var test = new Global();
test.variable = 10;
}
static void Function(Global global)
{
Console.WriteLine(global.variable);
}
}
如果你想在每个 class 中永久更改这个变量,你可以使用静态 class,但是你将无法创建它的实例(如果你想要其他变量是非静态的。
我建议查看 IServiceProvider,因为如果 Function() 方法在另一个 class 中并且您想通过全局 class.
,它们会非常有用
标题可能听起来有点混乱,但我想做的基本上是创建一个 class, 声明一个默认值为 0 的 public int,然后在 Program class 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);
}
}
}
如果您不想像这样进行注入,您可以创建静态 class:
public static class Global
{
public int variable = 0;
}
class Program
{
static void Main(string[] args)
{
Global.variable = 10;
}
static void Function()
{
Console.WriteLine(Global.variable);
}
}
或者您可以将 class 作为参数从您调用它的任何地方注入。
public class Global
{
public int variable = 0;
}
class Program
{
static void Main(string[] args)
{
var test = new Global();
test.variable = 10;
}
static void Function(Global global)
{
Console.WriteLine(global.variable);
}
}
如果你想在每个 class 中永久更改这个变量,你可以使用静态 class,但是你将无法创建它的实例(如果你想要其他变量是非静态的。
我建议查看 IServiceProvider,因为如果 Function() 方法在另一个 class 中并且您想通过全局 class.
,它们会非常有用