Advertisement
gr4viton

generic functions

Mar 19th, 2015
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. otázka nemá řešení (viz ten odkaz na diskuzi) takže to přeskoč pokud nechceš číst zahořklé zklamané výlevy :D.. až k poslednímu odstavci ;)
  2.  
  3. tyhle 2:
  4. private double CONV_one2interval(double val, double min, double max)
  5. {
  6. return val * (max - min) + min;
  7. }
  8. private byte CONV_one2interval(byte val, byte min, byte max)
  9. {
  10. return val * (max - min) + min;
  11. }
  12.  
  13. chci do jedné:
  14. private T CONV_one2interval<T>(T val, T min, T max)
  15. {
  16. return val * (max - min) + min;
  17. }
  18.  
  19.  
  20. je to zase proti zásadám c#? tady vidím že proč to nechce, není to "type safety", ale já jsem tady programátor, a když chci něco s prominutím ochcat tak k tomu mám snad právo :D, je hezké že c# je navržen tak aby v něm nešlo psát dirty code, tak dobře.. ale ať mě nenaláká tím že to jde (ten zapis sem kdesi vygooglil) ale pak mi uřízne větev tím že tam nemožu provádět operace * + a - kere nejsou přetížené pro ten obecný typ <T>.
  21. sakra tak ať mě nechá říct co za typy tam mají být ne? :O
  22.  
  23. diskuze: (fakt to nejde)
  24. http://stackoverflow.com/questions/32664/is-there-a-constraint-that-restricts-my-generic-method-to-numeric-types
  25.  
  26.  
  27.  
  28.  
  29. --> totok
  30. chtěl sem to vyřešit typováním na object.. ale tohle prý nejde: (not valid cast..)
  31. private object CONV_one2interval(object val, object min, object max)
  32. {
  33. return (object)((double)val * ((double)max - (double)min) + (double)min);
  34. }
  35. takže asi jediná možnost dát tam ty funkce dvě?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement