Загрузка данных
using System;
namespace _1
{
interface IDrawable
{
void Draw();
}
interface IPointy
{
int Points();
}
abstract class Shape : IDrawable
{
protected string name = "figure";
int ID { get; set; } = 0;
public Shape()
{
}
public Shape(string n)
{
name = n;
}
public abstract void Draw();
//{
// Console.WriteLine(name + " имя");
//}
public string Name
{
get { return name; }
set { name = value; }
}
public Shape(string name, int id) : this(name)
{
ID = id;
}
}
interface IDraw3D
{
void Draw();
}
class Circle : Shape
{
public Circle(string name) : base(name) { }
public override void Draw()
{
Console.WriteLine(name + " circle");
}
}
class Square : Shape, IPointy, IDraw3D
{
public Square(string name) : base(name) { }
void IDraw3D.Draw() { Console.WriteLine("Square3D {0}", name); }
public override void Draw()
{
Console.WriteLine(name + " sqare");
}
public int Points()
{
return 4;
}
}
internal class Program
{
public static void DrawShapeIn3D(IDraw3D itf3d)
{
Console.WriteLine("*** DrawShapeIn3D ***");
itf3d.Draw();
}
static void Main(string[] args)
{
Circle fc = new Circle("circle"); fc.Draw();
Square fs = new Square("square"); fs.Draw();
Square s = new Square("square");
Console.WriteLine("points = {0}", s.Points());
IPointy ip;// 1
try
{
ip = (IPointy)fs;
Console.WriteLine("points = {0}", ip.Points());
}
catch (InvalidCastException)
{
Console.WriteLine("No IPointy");
}
ip = fs as IPointy;// 2
if (ip == null)
{
Console.WriteLine("No IPointy");
}
else
{
Console.WriteLine("points = {0}", ip.Points());
}
if (fs is IPointy)// 3
{
Console.WriteLine("points = {0}", ((IPointy)fs).Points());
}
else
{
Console.WriteLine("No IPointy");
}
if (s is IDraw3D)//4
{
((IDraw3D)s).Draw();
}
if (s is IDraw3D)// 5.6
{
DrawShapeIn3D((IDraw3D)s);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SharpInterfaces
{
internal class Program
{
interface IDraw
{
void Draw();
}
interface IDraw2 : IDraw
{
void DrawToPrinter();
}
interface IDraw3 : IDraw2
{
void DrawToMetafile();
}
class SuperImage : IDraw3
{
public void Draw()
{
Console.WriteLine("IDraw.Draw");
}
public void DrawToPrinter()
{
Console.WriteLine("IDraw2.DrawToPrinter");
}
public void DrawToMetafile()
{
Console.WriteLine("IDraw3.DrawToMetafile");
}
}
static void Main(string[] args)
{
SuperImage si = new SuperImage(); try
{
}
catch (InvalidCastException)
{
Console.WriteLine("No Interface");
}
IDraw idr = (IDraw)si;
idr.Draw();
IDraw2 idr2 = (IDraw2)si;
idr2.Draw();
idr2.DrawToPrinter();
((IDraw3)si).Draw();
((IDraw3)si).DrawToPrinter();
((IDraw3)si).DrawToMetafile();
}
}
}