C# 访问另一个*.cs文件中定义的类成员
我正在为我的程序编写一个更新检查器,并使用来自远程服务器的xml。请求运行良好,它满足了我的要求。问题是我无法从另一个文件调用该函数。(见下面的代码) 文件C# 访问另一个*.cs文件中定义的类成员,c#,xml,visual-studio,C#,Xml,Visual Studio,我正在为我的程序编写一个更新检查器,并使用来自远程服务器的xml。请求运行良好,它满足了我的要求。问题是我无法从另一个文件调用该函数。(见下面的代码) 文件 home.cs-我想调用RequestVersion() version.cs-位于RequestVersion()的位置 代码 version.cs (返回一个数组) home.cs 和我的XML结构: <?xml version="1.0" encoding="UTF-8"?> <SerialMate>
- home.cs-我想调用
RequestVersion()
- version.cs-位于
的位置RequestVersion()
<?xml version="1.0" encoding="UTF-8"?>
<SerialMate>
<release version="1.0.0">
<date>12-10-2014</date>
<changelog>Test</changelog>
</release>
</SerialMate>
12-10-2014
试验
(我没有在xml上添加任何新的
标记,因此它总是有1)
问题
因此,我的问题是:它如何从
home.cs
中的RequestVersion()
访问数组元素?我不太理解您的问题,但是:
version v = new version();
string[] s = v.RequestVersion();
我不太理解你的问题,但是:
version v = new version();
string[] s = v.RequestVersion();
在其他文件和项目中引用代码 在同一个项目中,代码是在同一个文件中还是在不同的文件中完全没有区别。唯一重要的是访问修饰符(
public
、protected
、internal
和private
)
如果两个代码段位于不同的项目中,则编译后的代码将编译成两个不同的程序集(*.exe
或*.dll
)。因此,一个项目必须参考另一个项目。通常,启动项目(*.exe
)将引用类库项目(*.dll
)
如果两个项目位于同一个解决方案中,则可以添加所谓的项目引用。在解决方案资源管理器中右键单击类库项目,然后单击“复制为项目引用”。在启动项目中,右键单击“引用”,然后单击“粘贴引用”
如果这两个项目位于不同的解决方案中,则必须从启动项目中添加对类库DLL(通常是bin/Release中的DLL)的引用。右键单击“参考”,然后单击“添加参考…”。在“引用”对话框中,选择“浏览”并选择DLL
还要确保不要创建循环依赖项(项目A引用项目B,项目B引用项目A)。如果您有这样的依赖关系,通常可以通过将两个项目必须访问的代码放入第三个项目C来解决它。然后将引用更改为:a引用C和B引用C
调用另一个类的方法 类型(您案例中的类)及其成员(属性、方法、事件…)必须声明为
public
,以便从其他项目访问。在同一个项目中,它们也可以声明为内部
。(如果要派生新类,也可以将它们声明为受保护的
。)
如果一个成员声明为静态
,或者它是一个常量,则可以通过在成员名称中指定类型名称来访问它:
var result = MyClass.MyMethod();
如果成员是实例成员,则必须从类型(对象)的实例调用该成员:
在其他文件和项目中引用代码 在同一个项目中,代码是在同一个文件中还是在不同的文件中完全没有区别。唯一重要的是访问修饰符(
public
、protected
、internal
和private
)
如果两个代码段位于不同的项目中,则编译后的代码将编译成两个不同的程序集(*.exe
或*.dll
)。因此,一个项目必须参考另一个项目。通常,启动项目(*.exe
)将引用类库项目(*.dll
)
如果两个项目位于同一个解决方案中,则可以添加所谓的项目引用。在解决方案资源管理器中右键单击类库项目,然后单击“复制为项目引用”。在启动项目中,右键单击“引用”,然后单击“粘贴引用”
如果这两个项目位于不同的解决方案中,则必须从启动项目中添加对类库DLL(通常是bin/Release中的DLL)的引用。右键单击“参考”,然后单击“添加参考…”。在“引用”对话框中,选择“浏览”并选择DLL
还要确保不要创建循环依赖项(项目A引用项目B,项目B引用项目A)。如果您有这样的依赖关系,通常可以通过将两个项目必须访问的代码放入第三个项目C来解决它。然后将引用更改为:a引用C和B引用C
调用另一个类的方法 类型(您案例中的类)及其成员(属性、方法、事件…)必须声明为
public
,以便从其他项目访问。在同一个项目中,它们也可以声明为内部
。(如果要派生新类,也可以将它们声明为受保护的
。)
如果一个成员声明为静态
,或者它是一个常量,则可以通过在成员名称中指定类型名称来访问它:
var result = MyClass.MyMethod();
如果成员是实例成员,则必须从类型(对象)的实例调用该成员:
这两个文件是否在同一个项目中?请注意,您应该考虑更改标题,请阅读此链接以了解更多不幸的是,您没有给我们足够的信息来回答问题。我们需要知道您试图在
CheckforUpdateSolStripMenuItem\u Click
中放入什么,以及这些文件在您的解决方案中是如何排列的(它们都在同一个项目中吗?
MyClass obj = new MyClass();
var result = Obj.MyMethod();