Diskuze: Určení - změna datového typu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Prostuduj http://msdn.microsoft.com/…12aeb7t.aspx , to je to, co
hledáš .
Pokud bys chtěl použít tu svoji třídu přesně tak, jak je, tzn matematické operace na generickém typu, pak to v C# nelze jednoduše udělat. Obvykle se musí udělat if-if-if a otestovat typ, pak se zavolá kód, který odpovídá správnému typu.
To už by snad bylo jednodušší vytvořit třídu pro každý typ zvlášť
Můžeš zkusit dynamic
class M
{
dynamic a;
dynamic b;
public M(dynamic a, dynamic b)
{
if (!IsAllowedType(a.GetType()))
throw new ApplicationException("Not allowed type");
this.a = a;
this.b = b;
}
private bool IsAllowedType(Type t)
{
var allowed = new Type[] { typeof(Int16), typeof(Int32), typeof(Int64), typeof(decimal), typeof(double) };
return allowed.Any(type => type == t);
}
public dynamic GetSum()
{
return a + b;
}
}
To je přesně ono - dík za tip přiznám se, dle zdejšího tutoriálu jsem nabyl dojmu,že C# tento
typ-netyp nemá
No C# je sám o sobě strongly-typed, ale kvůli některým věcem vymysleli i tohle (osobně jsem to nikdy nepoužil, akorát vím, že to existuje). Všechno řeší až runtime a tak nemáš k dispozici ani intellisense.
Zobrazeno 7 zpráv z 7.