在同一解决方案中,我有两个项目:P1和P2。如何在P2中使用P1的一个类?
在同一解决方案中,我有两个项目:P1和P2。如何在P2中使用P1的一个类?
请注意,您希望直接访问的P1中的类型必须具有足够的访问级别:通常意味着它们必须被设置为公共的。
注意:如果您正在处理旧项目(例如.NET Framework),则可能没有“依赖项”节点。在这种情况下,请右键单击项目,从菜单中选择“添加引用”,然后确保在左侧选择了“项目”选项卡。
只需要在P2中加入对P1的引用即可。
保罗·鲁恩是正确的,我刚刚尝试了构建该项目。 我创建了一个完整的解决方案来测试它是否可行。
我是在 VC# VS2008 中完成的
<<(只是帮助其他人阅读此评论的人)
步骤1:
创建名为 DoubleProject 的解决方案
步骤2:
在解决方案中创建名为 DoubleProjectTwo 的项目(选择解决方案文件,右键单击->添加->新项目)
现在我在同一个解决方案中有两个项目
步骤3:
如保罗·鲁恩所述。 在解决方案浏览器中转到引用(如果关闭,则在编译器的“视图”选项卡中)。 DoubleProjectTwo 是需要 DoubleProject 的函数/方法的项目,因此在 DoubleProjectTwo 右键单击引用,然后单击添加->项目->DoubleProject。
步骤4:
包括名称空间的指令:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DoubleProject; <------------------------------------------
namespace DoubleProjectTwo
{
class ClassB
{
public string textB = "I am in Class B Project Two";
ClassA classA = new ClassA();
public void read()
{
textB = classA.read();
}
}
}
步骤5:
制作一些能够向我展示结果证明的东西:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DoubleProject
{
public class ClassA //<---------- PUBLIC class
{
private const string textA = "I am in Class A Project One";
public string read()
{
return textA;
}
}
}
主要内容
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DoubleProjectTwo; //<----- to use ClassB in the main
namespace DoubleProject
{
class Program
{
static void Main(string[] args)
{
ClassB foo = new ClassB();
Console.WriteLine(foo.textB);
Console.ReadLine();
}
}
}
那应该就行了。
希望能对你有所帮助。
编辑:哎呀,我忘记调用方法来实际改变字符串了,不要犯相同的错误 :)
print ("test")
from CIXMPythonFacade import ClassA
c1=ClassA
c1.methodA()
from CIXMPythonFacade import functionA
functionA()
class ClassName(object):
def __init__(object, parameter):
object.parameter = value
包含你要导入的类、方法或函数的库文件或“门面”文件。
class class1(object):
"""description of class"""
class ClassA(object):
print ("test2")
def methodA():
print ("test3")
def functionA ():
print ("test4")
return (0)
pass
现在你应该知道如何解决IDE引起的混乱了。如果要从同一目录空间中的另一个文件导入代码,则需要向其添加引用。
好的,现在您已经解决了这个问题,那么如何真正将两个单独的项目链接在同一个解决方案空间中呢?
Microsoft确实需要解决这些问题,以便您可以直观地在同一目录中创建大多数人想要创建的新文件,并通过从IDE中选择它们来删除解决方案。初学者对于有经验的开发人员来说非常灵活的目录路径语句感到非常沮丧,但对于其默认值来说却是不公平的。
希望这真正帮助了你这些新手,阻止有经验的开发人员为您提供错误答案,而这些错误答案对您没有用。他们假定您已经理解路径语句,只想键入正确的代码...这也是他们试图纠正您的代码但不帮助您解决问题的原因。这可能是stackoverflow上最常见的问题,也是错误答案持续出现的原因,这些错误答案对新程序员没有用。
第一步是通过以下方式使P2引用P1:
接下来,您需要确保P1中的类对P2可访问。最简单的方法是将它们设置为public
。
public class MyType { ... }
现在,您应该能够通过它们的完全限定名称在P2中使用它们。假设P1的命名空间是Project1,则以下操作将有效:
Project1.MyType obj = new Project1.MyType();
然而,更好的方法是添加一个 Project1
的 using,这样你就可以不用限定符使用这些类型。
using Project1;
...
public void Example() {
MyType obj = new MyType();
}
class FirstClass()
{
public string Name()
{
return "James";
}
}
在这里添加指向第二个项目的引用
第二个项目:
class SeccondClass
{
FirstProject.FirstClass obj=new FirstProject.FirstClass();
obj.Name();
}
假设你在项目2中的类名为MyClass。
显然,首先在项目1的引用中引用项目2,然后
using namespaceOfProject2;
// for the class calling bit:
namespaceOfProject2.MyClass project2Class = new namespaceOfProject2.MyClass();
我遇到了不同目标框架的问题。
我一切都做得正确,但就是不能在P2中使用引用。当我为P1和P2设置相同的目标框架后,它就像魔法般地工作了。
希望能对某人有所帮助。
添加 -> 引用... -> 项目
并勾选你想引用的项目。添加 -> 项目引用... -> 项目
并勾选你想引用的项目。