<?xml version="1.0" encoding="UTF-8" ?>
<PROFILE version="1.0">
	<HEADER>
		<NAME>CSharp</NAME>
		<DISPLAYNAME>C# Profile</DISPLAYNAME>
		<DESCRIPTION>C# Language Profile</DESCRIPTION>
	</HEADER>
	<BODY>
		<STEREOTYPELIST>
			<STEREOTYPE>
				<NAME>CSharpSourceFile</NAME>
				<DESCRIPTION>Source file with the C# implementation code</DESCRIPTION>
				<BASECLASSES>
					<BASECLASS>UMLComponent</BASECLASS>
				</BASECLASSES>
			</STEREOTYPE>
			<STEREOTYPE>
				<NAME>DotNetAssembly</NAME>
				<DESCRIPTION>.NET Assembly that is obtained by compiling the C# source file</DESCRIPTION>
				<BASECLASSES>
					<BASECLASS>UMLComponent</BASECLASS>
				</BASECLASSES>
			</STEREOTYPE>

			<STEREOTYPE>
				<NAME>CSharpDelegate</NAME>
				<DESCRIPTION>Indicates C# delegate</DESCRIPTION>
				<BASECLASSES>
					<BASECLASS>UMLClass</BASECLASS>
				</BASECLASSES>
			</STEREOTYPE>

			<STEREOTYPE>
				<NAME>CSharpStruct</NAME>
				<DESCRIPTION>C# struct type</DESCRIPTION>
				<BASECLASSES>
					<BASECLASS>UMLClass</BASECLASS>
				</BASECLASSES>
			</STEREOTYPE>

			<STEREOTYPE>
				<NAME>CSharpEvent</NAME>
				<DESCRIPTION>Used for defining event object in C#</DESCRIPTION>
				<BASECLASSES>
					<BASECLASS>UMLOperation</BASECLASS>
				</BASECLASSES>
			</STEREOTYPE>

			<STEREOTYPE>
				<NAME>CSharpProperty</NAME>
				<DESCRIPTION>Indicates property that shows class or attribute in C#</DESCRIPTION>
				<BASECLASSES>
					<BASECLASS>UMLOperation</BASECLASS>
				</BASECLASSES>
			</STEREOTYPE>

			<STEREOTYPE>
				<NAME>CSharpOperator</NAME>
				<DESCRIPTION>Indicates operator function that overloads operator in C#. Operator that overloads the name of the operation.</DESCRIPTION>
				<BASECLASSES>
					<BASECLASS>UMLOperation</BASECLASS>
				</BASECLASSES>
			</STEREOTYPE>

			<STEREOTYPE>
				<NAME>CSharpIndexer</NAME>
				<DESCRIPTION>Indicates indexer that allows class or structure to be accessed as an ordinary array in C#.</DESCRIPTION>
				<BASECLASSES>
					<BASECLASS>UMLOperation</BASECLASS>
				</BASECLASSES>
			</STEREOTYPE>

		</STEREOTYPELIST>

		<TAGDEFINITIONSETLIST>

			<TAGDEFINITIONSET>
				<NAME>CSharpOperation</NAME>
				<BASECLASSES>
					<BASECLASS>UMLOperation</BASECLASS>
				</BASECLASSES>
				<TAGDEFINITIONLIST>
					<TAGDEFINITION>
						<NAME>CSharpOverride</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
					<TAGDEFINITION>
						<NAME>CSharpVirtual</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
					<TAGDEFINITION>
						<NAME>CSharpExplicit</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
					<TAGDEFINITION>
						<NAME>CSharpImplicit</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
					<TAGDEFINITION>
						<NAME>CSharpExtern</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
					<TAGDEFINITION>
						<NAME>CSharpSetter</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
					<TAGDEFINITION>
						<NAME>CSharpGetter</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
					<TAGDEFINITION>
						<NAME>CSharpAdd</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
					<TAGDEFINITION>
						<NAME>CSharpRemove</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
					<TAGDEFINITION>
						<NAME>CSharpConstructorInitializer</NAME>
						<TAGTYPE>String</TAGTYPE>
					</TAGDEFINITION>
				</TAGDEFINITIONLIST>
			</TAGDEFINITIONSET>

			<TAGDEFINITIONSET>
				<NAME>CSharpExtend</NAME>
				<BASECLASSES>
					<BASECLASS>UMLClass</BASECLASS>
					<BASECLASS>UMLOperation</BASECLASS>
					<BASECLASS>UMLAttribute</BASECLASS>
					<BASECLASS>UMLAssociationEnd</BASECLASS>
				</BASECLASSES>
				<TAGDEFINITIONLIST>
					<TAGDEFINITION>
						<NAME>CSharpUnsafe</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
					<TAGDEFINITION>
						<NAME>CSharpStatic</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
					<TAGDEFINITION>
						<NAME>CSharpNew</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
				</TAGDEFINITIONLIST>
			</TAGDEFINITIONSET>

			<TAGDEFINITIONSET>
				<NAME>CSharpField</NAME>
				<BASECLASSES>
					<BASECLASS>UMLAttribute</BASECLASS>
					<BASECLASS>UMLAssociationEnd</BASECLASS>
				</BASECLASSES>
				<TAGDEFINITIONLIST>
					<TAGDEFINITION>
						<NAME>CSharpVolatile</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
					<TAGDEFINITION>
						<NAME>CSharpConst</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
				</TAGDEFINITIONLIST>
			</TAGDEFINITIONSET>

			<TAGDEFINITIONSET>
				<NAME>CSharpClassMember</NAME>
				<BASECLASSES>
					<BASECLASS>UMLClass</BASECLASS>
					<BASECLASS>UMLOperation</BASECLASS>
					<BASECLASS>UMLEnumeration</BASECLASS>
				</BASECLASSES>
				<TAGDEFINITIONLIST>
					<TAGDEFINITION>
						<NAME>CSharpInternal</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
				</TAGDEFINITIONLIST>
			</TAGDEFINITIONSET>

			<TAGDEFINITIONSET>
				<NAME>CSharpEnumeration</NAME>
				<BASECLASSES>
					<BASECLASS>UMLEnumeration</BASECLASS>
				</BASECLASSES>
				<TAGDEFINITIONLIST>
					<TAGDEFINITION>
						<NAME>CSharpBasetype</NAME>
						<TAGTYPE>String</TAGTYPE>
					</TAGDEFINITION>
				</TAGDEFINITIONLIST>
			</TAGDEFINITIONSET>
            <TAGDEFINITIONSET>
				<NAME>CSharpEnumerationLiteral</NAME>
				<BASECLASSES>
					<BASECLASS>UMLEnumerationLiteral</BASECLASS>
				</BASECLASSES>
				<TAGDEFINITIONLIST>
					<TAGDEFINITION>
						<NAME>CShapEnumLiteralValue</NAME>
						<TAGTYPE>String</TAGTYPE>
					</TAGDEFINITION>
				</TAGDEFINITIONLIST>
			</TAGDEFINITIONSET>
			<TAGDEFINITIONSET>
				<NAME>CSharpParameter</NAME>
				<BASECLASSES>
					<BASECLASS>UMLParameter</BASECLASS>
				</BASECLASSES>
				<TAGDEFINITIONLIST>
					<TAGDEFINITION>
						<NAME>CSharpParams</NAME>
						<TAGTYPE>Boolean</TAGTYPE>
						<DEFAULTDATAVALUE>False</DEFAULTDATAVALUE>
					</TAGDEFINITION>
				</TAGDEFINITIONLIST>
			</TAGDEFINITIONSET>


			<TAGDEFINITIONSET>
				<NAME>CSharpDimension</NAME>
				<BASECLASSES>
					<BASECLASS>UMLParameter</BASECLASS>
					<BASECLASS>UMLAttribute</BASECLASS>
					<BASECLASS>UMLAssociationEnd</BASECLASS>
				</BASECLASSES>
				<TAGDEFINITIONLIST>
					<TAGDEFINITION>
						<NAME>CSharpDimension</NAME>
						<TAGTYPE>Integer</TAGTYPE>
						<DEFAULTDATAVALUE>0</DEFAULTDATAVALUE>
					</TAGDEFINITION>
				</TAGDEFINITIONLIST>
			</TAGDEFINITIONSET>
			<TAGDEFINITIONSET>
				<NAME>CSharpTest</NAME>
				<BASECLASSES>
					<BASECLASS>UMLOperation</BASECLASS>
				</BASECLASSES>
				<TAGDEFINITIONLIST>
					<TAGDEFINITION>
						<NAME>CSharpTest</NAME>
						<TAGTYPE>Reference</TAGTYPE>
						<REFERENCETYPE>UMLInterface</REFERENCETYPE>
					</TAGDEFINITION>
				</TAGDEFINITIONLIST>
			</TAGDEFINITIONSET>

		</TAGDEFINITIONSETLIST>

		<DATATYPELIST>
			<DATATYPE>
				<NAME>bool</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>decimal</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>sbyte</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>byte</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>short</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>ushort</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>int</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>uint</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>long</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>ulong</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>char</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>float</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>double</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>object</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>string</NAME>
			</DATATYPE>
			<DATATYPE>
				<NAME>void</NAME>
			</DATATYPE>
		</DATATYPELIST>
	</BODY>
</PROFILE>
