using System;
using System.Collections.Generic;
using System.Text; namespace ConsoleApplication1
{
public interface ITest
{
void HelloWorld(string pamName);
}
//实现他的类
class a:ITest//使用接口
{
public void HelloWorld(string pamName)
{
Console.WriteLine("hi"+pamName);
}
}
//使用它:
//比如在另一个类中调用
class b
{
ITest myITest;
ITest MyITest{
get{
return myITest;
}
set{
myITest=value;
}
}//接口类型的属性MyITest
//需要的地方直接使用接口的方法就可以了 //下面该怎么用呢
static void Main() {
b a = new b();
a.MyITest = "aaa";
} }
} 他会提示“无法将类型“string”隐式转换为ConsoleApplication1.ITest 原文是http://www.dotnetsky.net/netsave/ShowTopic-15504.html
解决方案 »
- 急 !C# WPF 中如何在App.xaml中对不同操作系统设置TextBox的字体大小
- Directory.GetFileSystemEntries()报目录名无效。。help..
- [**百分求一正则表达式**]求一金额验证的正则表达式!!!
- HTTP/1.1 500 Internal Server error
- 写了个日记软件,自己玩的,请大家指正不足之处,要源码的留下E-mail
- 急!一个低级问题。
- c++转换C#问题,立马给分
- 这么利用applicationsettingsbase 实现不同用户的相关信息的save 和reload
- C#程序要求类、实现、Main()等都放在一个文件中,要是开发中大型软件文件太长怎么办?
- 【c#源码】安卓客户端通过TCP通信与Windows服务器进行文件传输
- 界面上N多控件的缩放该然后实现·················
- 异常的问题
b a = new b();
a.MyITest = new a();
a.MyITest.HelloWorld("aaa");
}
a.MyITest = new a();//这句话是在干什么?
接口类型的属性 应用在哪些方面呢?
myITest是一个实例,你把字符串给它当然类型不一致了.
public interface ITest
{
string MyITest{get;}
void HelloWorld(string pamName);
}
但是这样a,b都要改
class a:ITest//使用接口
{
string myitest;
public string MyITest
{
get
{
return "";
}
set
{}
}
public void HelloWorld(string pamName)
{
Console.WriteLine("hi"+pamName);
}
}
b
class b
{
string myITest = "aaaa";
public string MyITest{
get{
return myITest;
}
set{
myITest=value;
}
public void HelloWorld(string pamName)
{
}
}
大体这样
{
string MyITest{get;set;}
void HelloWorld(string pamName);
}
using System.Collections.Generic;
using System.Text;namespace ConsoleApplication1
{
public interface ITest
{
string myITest {get;set;} //定义属性
void HelloWorld(string pamName);//定义方法
}
//实现他的类
class a:ITest//使用接口
{
string mytest;
public string myITest //实现接口内属性
{
get{
return mytest;
}
set {
mytest = value;
}
}
public void HelloWorld(string pamName) //实现接口内方法
{
Console.WriteLine("hi"+pamName);
}
}
//使用它:
//比如在另一个类中调用
class b
{
ITest myITest;
ITest MyITest{
get{
return myITest;
}
set{
myITest=value;
}
}//接口类型的属性MyITest
//需要的地方直接使用接口的方法就可以了
static void Main()
{
a a = new a();
a.HelloWorld("aaaa");//1
ITest I = a;
I.HelloWorld("aaaa");//2 声明ITest接口的变量 指向实现它的类-对象a b b = new b();//3 .原文:http://www.dotnetsky.net/netsave/ShowTopic-15504.html 第三个接口类型的属性 我真不知道它那样的方法实现步骤该怎样理解, 我刚学完C#中的属性 对于接口类型的属性不知道怎么使用 还有实际应用是在哪些方面
b.MyITest = new a();
b.MyITest.HelloWorld("aaaa");
}
}
}我重新改写了,可以帮我看看第三个地方,那个接口类型的属性应用吗。3往下一行b.MyITest = new a();这样写的作用是什么?接口类型的属性在什么地方会用到?
你在定义属性的时候,它返回的是ITest类型的,但是你给它赋值为字符串类型的,显然会有
"无法将类型“string”隐式转换为ConsoleApplication1.ITest "这个错误!定义属性往往要跟定义私有字段放在一起!单独的定义一个属性是没有什么大的意义!但是在接口里面不允许定义字段,所以在接口里面你只能定义属性。在什么情况下要用属性呢?
当你定义了一个私有字段,而在类的外部你还想对它的值进行读取或修改,那么就可以定义一个公有的属性来访问那个私有的字段,这也就是属性的作用了。最好让属性返回一个具体的类型,而不要是一个接口,这样我感觉有些不太合理~
定义接口类型的属性,可以通过它访问实现该接口的所有类的字段吧!
例子中,你通过b类的属性获得了A类的对象a,那么你就可以调用A 类里面的公有成员了,不是么?
public interface ITest
{
string Name {get;set;} //定义属性
void HelloWorld(string pamName);//定义方法
}
//实现他的类
class a:ITest//使用接口
{
string name="";
public string Name //实现接口内属性
{
get{
return name;
}
set {
name = value;
}
}
public void HelloWorld(string pamName) //实现接口内方法
{
Console.WriteLine("我是"+pamName+",是被冤枉的!!");
}
}
//使用它:
//比如在另一个类中调用
class b
{
static void Main()
{
ITest I = new a();//接口指向实现类(声明ITest接口的变量 指向实现它的类-对象a)
I.Name = "陈冠希";
I.HelloWorld(I.Name);
//原文http://www.dotnetsky.net/netsave/ShowTopic-15504.html 结论:接口不能被实例化,只能指向实体类 }
}
using System.Collections.Generic;
using System.Text; namespace ConsoleApplication1
{
public interface ITest
{
void HelloWorld(string pamName);
}
//实现他的类
class a:ITest//使用接口
{
public void HelloWorld(string pamName)
{
Console.WriteLine("hi"+pamName);
}
}
//使用它:
//比如在另一个类中调用
class b
{
ITest myITest;
ITest MyITest{
get{
return myITest;
}
set{
myITest=value;
}
}//接口类型的属性MyITest
//需要的地方直接使用接口的方法就可以了 //下面该怎么用呢
static void Main() {
b a = new b();
a.MyITest = new a();
a.MyITest.HelloWorld("aaa");
} }
}