C # рдореЗрдВ рд╕реНрдЯреНрд░рдХреНрдЪрд░рд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ

рдЬрдм рдореИрдВрдиреЗ рдЧреЛ рднрд╛рд╖рд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛, рддреЛ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЛ рдкрд╕рдВрдж рдЖрдпрд╛ (рдореБрдЭреЗ рдмрд╛рдХреА рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА, рдмрд╣реБрдд рдЖрджрд┐рдо рдирд╣реАрдВ рд▓рдЧреА)ред рдпрд╣ рдПрдХ рд╕реНрдерд┐рд░ рдмрддрдЦ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣реИ! рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ: рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЯрдВрдХрдг ред

рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рд▓реЗрдХрд░ рд▓рд┐рд╕реНрдХреЛрд╡ рд╕рдмрд╕реНрдЯреЗрд╢рди рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рддрдХред рджрд░рдЕрд╕рд▓, рдЕрдЧрд░ рдХрд┐рд╕реА рд╡рд░реНрдЧ рдХреЗ рдкрд╛рд╕ рд╡рд╛рдВрдЫрд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (рдирд╛рдо рд╕рд╣рд┐рдд) рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рд╡рд╣ рдХрд░рддреА рд╣реИ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╕реА # рд╕рд╣рд┐рдд рдореБрдЦреНрдпрдзрд╛рд░рд╛ рдХреА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдФрд░ рдкрд░рд┐рдпреЛрдВ рдХреА рдХрд╣рд╛рдиреА рдЦрддреНрдо рд╣реЛ рдЬрд╛рдПрдЧреАред рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЬрд┐рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЙрд╕рдореЗрдВ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдЯ рдХреЗ рддрд╣рдд рд╡рд┐рд╡рд░рдгред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧреЗрдЯрд░реНрд╕ / рд╕реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдпрд╣ рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рднреА рдЕрдЪреНрдЫрд╛ рджреЗрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред

So. рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╛рди рдЧреБрдг (рдирд╛рдо рдФрд░ рдкреНрд░рдХрд╛рд░) рд╣реИрдВред
рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдЧреБрдгреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдСрдЯреЛ рдЧреБрдг рдП, рдмреА рдФрд░ рд╕реА рдФрд░ рдПрдХ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛рдЗрдо рд╡рд░реНрдЧ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдФрд░ рдЙрд╕реЗ рдмреА рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрддреНрддрд┐ рдП рдХреЗ рдореВрд▓реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕реЗ рд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрд╕реЗ DataItem рд╡рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдП рдФрд░ рдмреА рд╣реИрдВред

рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдЕрдЧреНрд░рд┐рдо рдореЗрдВ, рдЗрди рдЧреБрдгреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЛ рдРрд╕реЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рдЙрдкрднреЛрдХреНрддрд╛ рд╡рд░реНрдЧ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдШреЛрд╖рд┐рдд рдХрд░реЗрдВред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:

interface PropertyA{ int A {get; set;} } class DataItem: PropertyA, PropertyB, PropertyC{ public int A {get; set;} public bool B {get; set;} public string C {get; set;} } ... void Calculate<T>(T data) where T: PropertyA, PropertyB{ data.B = data.A > 0; } 


рдпрд╣ рд╕рд░рд▓ рд╣реИ: рдЬреЗрдиреЗрд░рд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ, рдЖрдк рдЦреЗрддреЛрдВ рдХрд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕реЗрдЯ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрдЯреМрддреА рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рд╕рдордЭрдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдЖ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреА рддрдХрдиреАрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдкрд░ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХреА рдПрдХ рдФрд░ рдЧрдВрдз рд╣реИред

Source: https://habr.com/ru/post/In218405/


All Articles