当前位置: 首页 > 编程语言 > C#

'field'butusedas'type'share

时间:2023-04-10 22:48:50 C#

'field'butusedas'type'我发现了许多其他类似的问题,但解决方案似乎对我不起作用。错误消息:“PaymentPlanStoreLogic.Class1.myLog”是一个“字段”,但像“类型”一样使用我的代码:使用系统;使用支付计划逻辑;namespacePaymentPlanStoreLogic{publicclassClass1{LoggermyLog=newLogger();我的日志。创建日志();}}对象浏览器:publicvoidcreateLog()PaymentPlanLogic.Logger的成员我按照页面上的建议尝试了以下操作(对象)是一个“字段”,但使用PaymentPlanLogic.Logger.createLog就像一个“类型”();但我收到错误消息“'PaymentPlanLogic.Logger.createLog()'是一个'方法',但像'类型'一样使用”您不能在方法以外的字段上调用方法:使用系统;使用支付计划逻辑;namespacePaymentPlanStoreLogic{publicclassClass1{LoggermyLog=newLogger();voidYouForgotThisMethod(){myLog.createLog();}}}Tobsey的回答是正确的。奇怪的错误消息的原因是因为编译器拼命地试图弄清楚你的意思。推理是这样的:此时唯一合法的事情是类、接口、结构、枚举、字段、运算符、索引器、事件、属性、方法、构造函数和析构函数的声明。它不能是类、接口、结构或枚举,因为它们都有一个关键字。它不能是构造函数或析构函数。因此,用户必须尝试创建字段、运算符、索引器、事件、属性或方法。所有这些事情都可以合法地从一个流派开始。好的,所以这个表达式必须尝试识别一个类型。但它不识别类型;它标识一个字段。这是我给出的错误。当然,这是对编译器的一种不合理的拟人化,但你要清楚:编译器对错误代码的“心智模型”与你在编写损坏代码时所想的大不相同,因此错误信息并没有多大帮助。编译器认为您知道语句不能到达那里,并将字段与类型混淆。一个更复杂的算法会让编译器猜测因为你键入了一个合法的语句,真正的错误是语句在块之外。编写一个错误消息生成器来准确模拟编写错误代码的人的心理过程是非常困难的。Class1的定义不完整。不能在类中调用这个方法,可以在类方法中调用:usingSystem;使用支付计划逻辑;namespacePaymentPlanStoreLogic{publicclassClass1{#regionMembersLoggermyLog;#endregion#region构造函数publicClass1(){myLog=newLogger();myLog.createLog();}#endregion}}然后createLog()将在实例化Class1的新实例时执行。以上是C#学习教程:'field'但作为'type'来分享所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: