c# - 带有 var 的匿名类型给出错误 CS0825
问题描述
我想在类中的 C# 中创建一个匿名类型。
我见过的示例var
用于创建匿名变量
var RecordId = new
{
Foo = 0,
Bar = "can be also a string"
};
但是我想在一个类中创建我的匿名变量。
public class Logger //: LogBase
{
var RecordId = new
{
Foo = 0,
Bar = 1
};
}
所以在记录时我可以这样做:
Logger.RecordId.Foo
但是将我的匿名类型声明为 var 会触发以下错误:
CS0825: The contextual keyword 'var' may only appear within a local variable declaration.
匿名变量的类型是什么,所以我不必使用var?
我明白错误告诉我什么,但我不想将我的变量移动到函数中,它需要是 Logger 的属性。
编辑:枚举是我一开始就尝试过的,但我需要这些值比整数更灵活(比如字符串,所以我可以转储 jon 文件)。我更新了我的问题以反映这一点。
解决方案
var
(并且根据定义匿名类型)只能在方法内声明,错误消息基本上是在告诉你。如果您需要此类型处于类级别,则创建一个类/结构/元组来存储它。
public static class Record
{
public static int Foo { get; set; }
public static int Bar { get; set; }
}
public class Logger //: LogBase
{
public static Record RecordId { get; set; } = new Record();
}
现在你可以这样做:
var foo = Logger.RecordId.Foo;
请注意,我也使用过static
,因此您无需创建该类的新实例,但如果您认为它相关,请更改它。
推荐阅读
- swift - 如何扩展 Decodable 以从字典初始化?
- python - 蟒蛇重新。排除一些结果
- python - Twisted 服务器/客户端之间的多个调用/响应消息
- cqrs - 在 cqrs 中投影期间处理数据库故障
- r - 如何在闪亮的盒子内制作高宪章时间序列图?
- javascript - 如何在 Vue 工作流程(Vanilla Bootstrap)中覆盖 Bootstrap 变量?
- django - 具有 CMS 功能的 Django 管理员
- c# - 'Npgsql.PostgresException' 类型的第一次机会异常
- django - 存储具有相关模型的对象会导致 IntegrityError:空值违反非空约束
- javascript - 表格叠加标签