我确实理解如何编写一个接口在C#中工作,例如这里描述的: codeguru解释
interface IIntelligence
{
bool intelligent_behavior();
}
class Human: IIntelligence
{
public Human()
{
//.............
}
/// Interface method definition in the class that implements it
public bool intelligent_behavior()
{
Console.WriteLine("........");
return true
}
}
Run Code Online (Sandbox Code Playgroud)
然而,我对以下接口转换过程感到困惑:
Human human = new Human();
// The human object is casted to the interface type
IIntelligence humanIQ = (IIntelligence)human;
humanIQ.intelligent_behavior();
Run Code Online (Sandbox Code Playgroud)
有一个类(在这种情况下是Human)实现一个接口,然后将它的实例人体反馈到接口的意义是什么?问题不在于它是如何运作的,而是为什么要这样做.
我们公司有一个CRM系统,它使用Oracle 11g数据库.它由第三方供应商开发.
我们无权访问运行CRM系统的服务器.但是,我们有可用的DBA登录数据(SYS用户).它包括:
我们可以使用它来使用Oracle SQL Developer 3.1(连接>>属性)访问数据库
现在,部分数据必须从CRM数据库复制到另一个 Oracle数据库中,该数据库驻留在另一台服务器上.
据我了解,我需要在目标数据库中创建一个数据库链接.我试过这样的事情:
CREATE PUBLIC DATABASE LINK xxx CONNECT TO sys IDENTIFIED BY ***** USING 'MYTNSENTRY'
Run Code Online (Sandbox Code Playgroud)
我的tnsnames.ora如下:
MYTNSENTRY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.1.2.3)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = abc)
)
)
Run Code Online (Sandbox Code Playgroud)
....而我的listener.ora看起来像这样:
MYLISTENER=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=172.1.2.3)(PORT=1521))
))
SID_LIST_MYLISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=MYTNSENTRY)
(ORACLE_HOME=C:\somepath) # path to Oracle home …Run Code Online (Sandbox Code Playgroud) oracle database-connection database-link heterogeneous-services