11
,
:
, Visual Studio.Net.
-. (, , ), , .
( ) . , , , . .
, , interface:
interface ISomeInterface
{
//
}
* , I, , .
, :
interface ISomeInterface
{
string SomeProperty { get; set; } //
void SomeMethod(int a); //
}
, , , , , :
class SomeClass: ISomeInterface // ISomeInterface
{
//
}
, , :
class SomeClass: ISomeInterface
{
public string SomeProperty
{
Get
{
// get
}
Set
{
// set
}
}
public void SomeMethod(int a)
{
//
}
}
. . :
interface IGeometrical //
{
void GetPerimeter();
void GetArea ();
}
class Rectangle: IGeometrical //
{
public void GetPerimeter()
{
Console.WriteLine("(a+b)*2");
}
public void GetArea()
{
Console.WriteLine("a*b");
}
}
class Circle: IGeometrical //
{
public void GetPerimeter()
{
Console.WriteLine("2*pi*r");
}
public void GetArea()
{
Console.WriteLine("pi*r^2");
}
}
class Program
{
static void Main(string[] args)
{
List<IGeometrical> figures = new List<IGeometrical>();
figures.Add(new Rectangle());
figures.Add(new Circle());
foreach (IGeometrical f in figures)
{
f.GetPerimeter();
f.GetArea();
}
Console.ReadLine();
}
}
, , .
|
|
, , ? .
, , .
. , , . C++, C# . C# . . , , , , / .
, :
interface IDrawable
{
void Draw();
}
interface IGeometrical
{
void GetPerimeter();
void GetArea ();
}
class Rectangle: IGeometrical, IDrawable
{
public void GetPerimeter()
{
Console.WriteLine("(a+b)*2");
}
public void GetArea()
{
Console.WriteLine("a*b");
}
public void Draw()
{
Console.WriteLine("Rectangle");
}
}
class Circle: IGeometrical, IDrawable
{
public void GetPerimeter()
{
Console.WriteLine("2*pi*r");
}
public void GetArea()
{
Console.WriteLine("pi*r^2");
}
public void Draw()
{
Console.WriteLine("Circle");
}
}
IDrawable, . , , Image. Image Circle , , IDrawable, , ( ). IDrawable , . , IGeometrical .
1. ?
2. ?
3. ?
ISwitchable, . , .