gpt4 book ai didi

c# - 在 C# 中从 'object' 类型访问参数

转载 作者:行者123 更新时间:2023-11-30 17:03:31 25 4
gpt4 key购买 nike

我正在将 VB.Net 应用程序转换为 C#(以及学习 C#),但遇到了问题。其中一个函数接受一个对象,并根据传递的内容对某些参数应用修改。这样,一个函数可用于更新传递给它的任何控件,这在 VB 中运行良好。

完整的功能背后有更多的逻辑,但这里是一个显示基础知识的缩减版本:

public void TransformObject(object objObject, int LeftPadding, int TopPadding, int WidthChange, int HeightChange)
{
objObject.Top = TopPadding;
objObject.Left = LeftPadding;
objObject.Width = WidthChange;
objObject.Height = HeightChange;
}

问题是“Top”、“Left”、“Width”、“Height”等未定义,因为它使用的是对象类型。

有没有一种方法可以保留现有结构,而不必为每种可能的控件类型创建单独的函数或定义?

编辑:我正在使用 .Net 3.5 框架。

最佳答案

您可以使用动态:

public void TransformObject(object objObject, int LeftPadding, int TopPadding, int WidthChange, int HeightChange)
{
dynamic dynObject = (dynamic)objObject;
dynObject.Top = TopPadding;
dynObject.Left = LeftPadding;
dynObject.Width = WidthChange;
dynObject.Height = HeightChange;
}

或者找到所有这些类型共有的接口(interface)/基类(可能是 Control?)并在方法签名中使用它,而不是 object

关于c# - 在 C# 中从 'object' 类型访问参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18468312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com