错误 1 “object”不包含“Text”的定义,并且找不到可接受类型为“object”的第一

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误 1 “object”不包含“Text”的定义,并且找不到可接受类型为“object”的第一相关的知识,希望对你有一定的参考价值。

回答

这是Label,TextBox类型,object需要拆箱操作。object作为父类不可能直接使用子类的属性。在变量声明中将object改成对应的Label和TextBox,然后在Click事件中可以直接使用属性直接赋值。一直说C#是强类型语言,通俗地讲,便是指C#中的“变量”在开发时的类型便是明确的:String便是String,Int32就是Int32,毫无争议。

参考技术A 将Text去掉试试

object' 不包含动态数据的 MainTypeCode 定义

【中文标题】object\' 不包含动态数据的 MainTypeCode 定义【英文标题】:object' does not contain a definition for MainTypeCode for dynamic dataobject' 不包含动态数据的 MainTypeCode 定义 【发布时间】:2018-05-28 13:16:56 【问题描述】:

以下查询返回一些用于单元测试的模拟数据。

var colorsList = (IEnumerable<dynamic>)colorsRepository.GetColorsList().Result;

它以动态对象的形式给出结果

我只想获得MainTypeCode 值。但它显示 object' 不包含 MainTypeCode 的定义

colorsList.Select(cl => (dynamic)cl.MainTypeCode);

编辑:

让我知道如何安排虚拟/模拟动态数据来执行查询?

并且colorsRepository.GetColorsList().Result; 正在返回下方。我应该更改模拟数据以运行查询吗?

 public static IEnumerable<dynamic> GetColorsList()
        
            List<dynamic> colours = new List<dynamic>();
            for (int i = 0; i < 1; i++)
            
                colours.Add((dynamic)new
                
                    MainTypeCode = 1,
                    DoorCode = "001"
                );
            
            return colours.AsEnumerable();
        

【问题讨论】:

你不应该使用Task.Result。使用await colorsRepository.GetColorsList()colorsRepository.GetColorsList().GetAwaiter().GetResult() 你们能告诉我吗。如何为该查询安排一个虚拟数据? @如何为这个GetColorsList()方法设置模拟数据? 我认为您必须使用反射才能获得动态属性。 如果colorsList 真的是IEnumerable&lt;dynamic&gt; - colorsList.Select(cl =&gt; cl.MainTypeCode) 应该可以正常工作并且不会产生任何编译时错误。 【参考方案1】:

遗憾的是,我有很多时间来阐述更好的答案,但您必须使用反射才能获得动态属性。

如果你事先知道动态属性,你可以尝试做一个类并创建一个带有反射的 Map 方法来获取对象。

【讨论】:

【参考方案2】:

我猜,这个问题可能与动态有关。您可以尝试以下方法吗?

var colorLists = new []  new DoorCode = "001", MainTypeCode = 1, new DoorCode = "002", MainTypeCode = 2;
var mainTypeCodes = colorLists.Select(cl => cl.GetType().GetProperty("MainTypeCode").GetValue(cl, null));

Get value of c# dynamic property via string

【讨论】:

你的模拟数据应该可以用于这个查询,你能试试吗? 我想为我的查询设置一个模拟数据。我不想更改查询。对不起 啊好吧...所以你要做的是为它创建一个单元测试,而你目前正在模拟colorsRepository,GetColorsList方法? 我不太确定的一个是您如何注入模拟 colorRepository 对象,因为您的模型数据似乎可以被查询(并且您的原始查询也应该有效)。我现在想知道的是 colorRepository.GetColorLists().Result - 建议 GetColorLists() 应该返回一个任务 - 但话又说回来,你不能走那么远来获得异常 让我们continue this discussion in chat.

以上是关于错误 1 “object”不包含“Text”的定义,并且找不到可接受类型为“object”的第一的主要内容,如果未能解决你的问题,请参考以下文章

使用 Object.clone() 的错误

'Newtonsoft.Json.Linq.JObject'不包含'status'错误的定义

(项目名称).MainWindow不包含(名称)_TextChanged的定义

Qt C++ Q_OBJECT 错误未定义对 vtable 的引用

text 错误:未捕获(在承诺中):TypeError:Object(...)不是函数

React Navigation + TypeScript 错误:类型“EventStackParams”不满足约束“Record<string, object |未定义>'