Talk:Common Type System

Incorrect definition
The opening sentence "The Common Type System (CTS) is a common set of data types used by every language built on the .NET Framework. " is incorrect.

From | Microsoft we have "The common type system defines how types are declared, used, and managed in the runtime, and is also an important part of the runtime's support for cross-language integration."

So the CTS is much larger than simply a common set of data types (if it is indeed even that - I'm thinking that the common set of data types is actually defined by the CLI/CLR, not the CTS.)

Leotohill 01:03, 13 August 2007 (UTC)

It'd be a good idea to place a "questionable accuracy" template on this topic. I don't know how. Leotohill 13:07, 16 August 2007 (UTC)

Ok, I've gone and changed it myself. Leotohill 01:53, 17 August 2007 (UTC)

I have three points/questions regarding the definition in the opening sentences:
 * The opening sentences seem to imply that the CTS is of fundamental importance to all programming languages. The reality is that is just one of many possible specifications, and that currently it is only relevant to .NET-related languages. Perhaps a word like 'specification' or 'system' would be more appropriate than 'standard'?
 * Also, there shouldn't be a capital letter for type, especially not in the opening sentence.
 * Finally, the CTS is not comprehensive; it is not really correct to say  "allow programs written in different programming languages to easily share information."  Not all types fit easily into the CTS system; I can't imagine it'd be possible to truly allow all types, present and future, to be correctly described in the CTS. One simple example is the inability to have stack based derived types; my understanding is that value types (the only types which are allowed on the stack) cannot be derived from. Many types which users take for granted in other languages would be very difficult, if not impossible, to use in the CTS. PS: I'm no expert on the CTS, but I imagine the experts doing basic research in type systems would have a lot to say on this topic. Aaron McDaid (talk - contribs) 15:05, 1 August 2009 (UTC)


 * 1) I see your point. However, it is a standard - an Ecma standard.  We need to point out that it is a standard followed by some systems, not all.  I hope we can rephrase it without cluttering the opening too much.  I thought of changing "...are represented in computer memory." to "... are represented in the computer memory of CTS-compliant systems."  Maybe something better will come up, or I'll change it to that.
 * 2) I agree that according to standard style, we wouldn't capitalize "type", but in this case I think it helps the reader understand the special meaning of the word here.
 * 3) I don't see any claim here that the CTS is comprehensive, and it certainly does "allow programs written in different programming languages to easily share information." The CTS may indeed constrain languages in some ways, but that doesn't contradict the statement that it helps CTS-compliant languages share information. Leotohill (talk) 19:51, 1 August 2009 (UTC)


 * 2) What about type instead of Type? The word 'type' is a piece of jargon, but it's still an improper noun. So I think italics may be more suitable.
 * 1,3) I see what you're saying. My concerns would be more valid if the article claimed it was 'the standard' instead of 'a standard'. I've just read the start of CORBA, and can see that it's written in a similar style. So, on second thoughts, I'm happier.
 * Thanks for the responses. Aaron McDaid (talk - contribs) 10:01, 2 August 2009 (UTC)
 * Sure, go for it. Leotohill (talk) 04:41, 3 August 2009 (UTC)

Type categories
I think this section needs to be added back in, but possibly clarified. The CTS is a fundamental part of .Net that helps differentiate it from Java, and the key to this is the requirement of the CTS for cross language support. Trying to to sound too much like an MS PR report, but this is fundamental to .Net - Christopher G Lewis (talk) 00:12, 13 February 2008 (UTC)

Unboxing
The article should say that implicit unboxing is not always supported, since it is usually a downcast. For instance the example code fails in C# 2008. The issue is not relevant for weak-typed languages, however I think that the unboxing section should be as complete as the boxing section. Bye! Damix 79.22.120.92 (talk) 19:09, 3 September 2008 (UTC)

reference types
"Reference types store a reference to the value's memory address, and are allocated on the heap" from what i know the reference itself is on the stack and only the referenced object is on the heap. If i am wrong and everything is on the heap how can the function find the object? — Preceding unsigned comment added by אריקפ1111 (talk • contribs) 11:54, 15 December 2015 (UTC)