c# - Difference between Covariance & Contra-variance -


I am having trouble understanding the difference between empathy and immorality.

The question is, "What is the difference between sympathy and corruption?"

Sovereignty and depravity are the properties of a mapping function that connects one member of a set with another. More specifically, a mapping can be a cult or anti in relation to relationship on that set.

Consider the following two subsets of the set of all C # types. First:

  {animal, tiger, fruit, banana}.  

And secondly, this is clearly related to the set:

  {IEnumerable & lt; Animals>, IEnumerable & lt; Tiger & gt;, IEnumerable & lt; Feet & gt ;, IEnumerable & lt; Banana & gt; }  

There is an mapping operation from the first set to the second set. For each T in the first set, in the second set related type IEnumerable & lt; T & gt; . Or, in a nutshell, mapping T → IE & lt; T & gt; . Note that this is a "thin arrow".

So far with me?

Now we consider an relationship . In the first set, there is an assignment consistency relationship between pairs. A value of type tiger can be assigned to a variable of animal , so these types are called "assignment compatible". Let us type "a value of type X can be specified as a lower type in y " " X . That's a "fat arrow".

So in our first subset, here are all assignment compatibility relationships:

  Tiger ⇒ Tiger Tiger ⇒ Animal Animal ⇒ Animal Creation ⇒ Banana made ⇒ fruit fruits ⇒ fruit  

In C # 4, supporting the co-sensitive sensitivity of some interfaces, the type of pair in the second set The Quick Assignment Compatibility Relationship is:

  IE> Tiger> ⇒ IE  IE & LT; Tiger & gt; ⇒ IE & lt; Animals & gt; IE & LT; Animals> ⇒ IE & lt; Animals & gt; IE & LT; Banana> ⇒ IE & lt; Banana & gt; IE & LT; Banana & gt; ⇒ IE & lt; Fruits & gt; ; IE & LT; Fruits & gt; ⇒ IE & lt; fruit & gt;  

Note that mapping T → IE > Assignment preserves the existence and direction of compatibility That is, if X ⇒ Y , then it is also true that IE ⇒ ⇒ IE & lt; Y & gt;

If we have two things on both sides of the fat arrow, then we can turn both sides towards the right hand of a thin arrow.

Mapping This property is called "sympathetic mapping" in relation to a particular relationship. It should be understood: where the sequence of tigers can be used, where the sequence of animals is but the opposite is not true. A sequence of animals can not be needed where a series of tigers are required.

This community is now considering this subset of all types of sets:

  {ICemperable & lt; Tiger & gt;, ICemperable & lt; Animals>, IComperbol & lt; Fert>, IComperbal & lt; Banana & gt; }  

We now have the third set T → IC & lt; T & gt; There is a mapping on .

In C # 4:

IC < Tiger & gt; ⇒ IC & lt; Tiger & gt; IC & LT; Animals & gt; ⇒ IC & lt; Tiger & gt; Backwards! IC & LT; Animals & gt; ⇒ IC & lt; Animals & gt; IC & LT; Banana & gt; ⇒ IC & lt; Banana & gt; IC & LT; Fruit & gt; ⇒ IC & lt; Banana & gt; Backwards! IC & LT; Fruit & gt; ⇒ IC & lt; Fruit & gt;

That is, the mapping T → IC & lt; T & gt; has preserved existence but direction of compatibility assignment is the same, if x ⇒ y , then ic < X & gt; A mapping that holds , but goes back is a relation called contravariant mapping.

P> Again, this should be clearly correct. A device that can compare two animals, can also compare two tigers, but a device that can compare two tigers does not necessarily compare any two animals.

Therefore there is a difference between sovereignty and corruption in C # 4. > Maintenance direction of assignment In contrast, behind


Comments

Popular posts from this blog

sql - dynamically varied number of conditions in the 'where' statement using LINQ -

asp.net mvc - Dynamically Generated Ajax.BeginForm -

Debug on symbian -