Zmienny typ parametru
2 posters
:: Projekt "Madagaskar" :: 4.INNE :: 1.C#: ogólnie
Strona 1 z 1
Zmienny typ parametru
Hej.
Można ustawić żeby typ parametru przekazywanego do metody był zmienny? Mam taką konstrukcję:
interface IPointy
abstract class Shape
class Circle : Shape
class Hexagon : Shape, IPointy
class Triangle : Shape, IPointy
class Oval :Circle
class Program
Chcę napisać statyczną metodę, która sprawdzałaby czy obiekt danej klasy ma dostęp do interfejsu. Coś w tym stylu:
Można ustawić żeby typ parametru przekazywanego do metody był zmienny? Mam taką konstrukcję:
interface IPointy
abstract class Shape
class Circle : Shape
class Hexagon : Shape, IPointy
class Triangle : Shape, IPointy
class Oval :Circle
class Program
Chcę napisać statyczną metodę, która sprawdzałaby czy obiekt danej klasy ma dostęp do interfejsu. Coś w tym stylu:
- Kod:
public static void HavePoint(Hexagon parametr)
{
if (parametr is IPointy)
Console.WriteLine(((IPointy)parametr).GetNumbersOfPoints());
else
Console.WriteLine("Not pointy......");
}
emielek- Liczba postów : 27
Join date : 04/02/2014
Age : 41
Re: Zmienny typ parametru
- Kod:
public static void HavePoint(Shape parametr)
{
if (parametr is IPointy)
Console.WriteLine(((IPointy)parametr).GetNumbersOfPoints());
else
Console.WriteLine("Not pointy......");
}
Powinno dzialac. I taka mala uwaga, metody tego typu raczje powinny zwracac prosta wartosc typu bool, a nie wyswietlac informacje.
@edit
a teraz tak na to patrze i mam kolejna mala uwage. Nazwales metode "HavePoint", a mimo to wyswietlasz informacje o ilosci punktow - dwie rozne rzeczy.
imo powinno byc mniej wiecej tak:
- Kod:
public static bool HavePoint(Shape parametr)
{
return parametr is IPointy;
}
static void Main(string[] args)
{
var oval = new Oval();
if (HavePoint(oval))
{
Console.WriteLine("Pointy - number of points: " + ((IPointy)oval).GetNumbersOfPoints());
}
else
{
Console.WriteLine("Not pointy......");
}
Console.ReadLine();
}
A i jak chcesz zmienny typ parametru to mozesz rowniez uzyc generic methods, ale w tym przypadku to jest zbedne, skoroTwoja hierarchia klas opiera sie na dziedziczeniui.
Fores- Liczba postów : 73
Join date : 30/05/2013
Age : 34
Skąd : Katowice
Re: Zmienny typ parametru
Dzięki za odpowiedź i dodatkowe info
emielek- Liczba postów : 27
Join date : 04/02/2014
Age : 41
:: Projekt "Madagaskar" :: 4.INNE :: 1.C#: ogólnie
Strona 1 z 1
Pozwolenia na tym forum:
Nie możesz odpowiadać w tematach