Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在另一个项目和命名空间中调用非静态方法_C#_.net_Winforms_Methods_Private Methods - Fatal编程技术网

C# 在另一个项目和命名空间中调用非静态方法

C# 在另一个项目和命名空间中调用非静态方法,c#,.net,winforms,methods,private-methods,C#,.net,Winforms,Methods,Private Methods,我有两个Windows窗体应用程序,它们属于不同的解决方案。我正在尝试从一个使用另一个调用一个方法。我从我试图访问的解决方案(Sol1)创建了一个类库,并在我正在运行的项目(Sol2)中引用了它,但访问该方法时遇到了困难 我发现这样做的建议是: string s=string InvokeStringMethod3 (“项目”、“名称空间”、“类”、“方法”) 当我运行它时,我得到一个NullReferenceException,其中calledType为null。根据评论,这只适用于静态方法,

我有两个Windows窗体应用程序,它们属于不同的解决方案。我正在尝试从一个使用另一个调用一个方法。我从我试图访问的解决方案(Sol1)创建了一个类库,并在我正在运行的项目(Sol2)中引用了它,但访问该方法时遇到了困难

我发现这样做的建议是:

string s=string InvokeStringMethod3
(“项目”、“名称空间”、“类”、“方法”)

当我运行它时,我得到一个
NullReferenceException
,其中
calledType
为null。根据评论,这只适用于
静态
方法,但我尝试调用的方法是
public void


有没有办法修改它,使之适用于非静态方法?还是应该换一种方式?我正在Visual Studio 2015中使用C#,两个项目都是.NET。

创建类的对象,并在已经引用解决方案时使用其函数。无需创建静态方法。在解决方案2中实例化解决方案1类

Sol1.MyClass cls = new Sol1.MyClass();
然后你可以使用这个方法

cls.somemethod();

Static
成员属于类而不是对象,可以通过类名直接使用。

为什么不实例化此方法所属的类?您了解静态方法和实例(非静态)方法之间的区别吗?你需要理解两者之间的区别,不仅是为了回答这个问题,也是为了学习C。@EdPlunkett如果我理解正确(我可能不理解,我是C#新手),静态在每次运行程序时都保持不变,实例则不然。@AxxieD-不,不是这样。您考虑的是常数或只读,这是完全不同的。@AxxieD-这是MSDN网站上的一篇很好的文章,应该用大量的例子来描述差异:请详细说明您的答案。投票否决了发表评论之类的回答。这正是我所需要的。非常感谢。
cls.somemethod();