c# - 非静态字段方法或属性统一“Game.Open”需要对象引用
问题描述
你好如何在不使用静态的情况下使用该字段?我不能在静态中使用“this”,但是当我删除“this”时,我遇到了以下问题:非静态字段方法或属性统一“Game.Open”需要对象引用
private bool Open;
// Token: 0x06001748 RID: 5960
public static void Menu()
{
if (SceneManager.GetActiveScene().name == "MainMenu")
{
if (Open)
{
Open = true;
}
else
{
Open = false;
}
}
}
解决方案
简介:private static bool Open;
<-静态方法的静态变量
你的方法是静态的(属于类,只有一个)。你的变量不是(属于的对象可以有很多):。
只有一个菜单(我猜)所以把变量放在静态。(并避免整个if
反模式)。那样可以么 :
private static bool Open;
// Token: 0x06001748 RID: 5960
public static void Menu(){
if (SceneManager.GetActiveScene().name != "MainMenu"){return;}
if (Open){Open = true;}
else{Open = false;}
}
见这里:https ://syntaxdb.com/ref/csharp/static-methods
Static methods are called without instantiation. This means that static methods can only access other static members of the class (and of course, global and passed in variables), because other members are object members.
推荐阅读
- php - 在 WooCommerce 中的标题下方显示循环产品类别项目描述
- mysql - ORDER BY 在 MySQL 中无法与 UNION 一起正常工作
- python - Python Telegram Bot 在按下 telegram.KeyoardButton 后打开 URL/加入另一个 Telegram Group
- python - 如何在年、月、日分区上下推谓词
- automation - AHK 脚本双击每 X 次左键单击(随机双击每几次单击)
- python - boto3 的 S3.Bucket.download_file 的响应语法
- python - 如何更改 Jupyter 看到的 Python 版本?
- winapi - 比较 16 bpp 和 32 bpp 位图转换
- rust - 枚举匹配:第一臂意外总是匹配
- javascript - 我如何在任何地方使用 AsyncStorage 数据?