This article contains C# language changes from Beta 1 to Beta 2.
Changes that might require source code modification
[MarshalAs(...)] string testString() must now be written as: [return:MarshalAs(...)] string testString()
Previous Form New Form attributeusage System.AttributeUsage comimport System.Runtime.InteropServices.ComImport commethod No direct mapping. Use System.Runtime.InteropServices.PreserveSig for similar functionality. conditional System.Diagnostics.Conditional dispid System.Runtime.InteropServices.DispId dllimport System.Runtime.InteropServices.DllImport guid System.Runtime.InteropServices.Guid in System.Runtime.InteropServices.In interfacetype System.Runtime.InteropServices.InterfaceType marshal System.Runtime.InteropServices.MarshalAs name System.Runtime.CompilerServices.CSharp.IndexerName nativetype No direct mapping. Use System.Runtime.InteropServices.MarshalAs for similar functionality. nonserialized System.NonSerialized obsolete System.Obsolete out System.Runtime.InteropServices.Out returnshresult Nno direct mapping. Use System.Runtime.InteropServices.PreserveSig or the PreserveSig argument on DllImport for similar functionality serializable System.Serializable structlayout System.Runtime.InteropServices.StructLayout structoffset System.Runtime.InteropServices.FieldOffset sysimport System.Runtime.InteropServices.DllImport sysstruct No direct mapping. Use System.Runtime.InteropServices.StructLayout for similar functionality. uuid System.Runtime.InteropServices.Guid
New language features
Changes that might require build changes
Command-line options Assembly-level attribute equivalent /a.config System.Reflection.AssemblyConfiguration /a.culture System.Runtime.CompilerServices.AssemblyCulture /a.description System.Reflection.AssemblyDescription /a.keyfile System.Runtime.CompilerServices.AssemblyKeyFile /a.keyname System.Runtime.CompilerServices.AssemblyKeyName /a.sign System.Runtime.CompilerServices.AssemblyDelaySign /a.title System.Reflection.AssemblyTitle /a.version System.Runtime.CompilerServices.AssemblyVersion
1) Current working directory. This is the directory the user is running the compiler from. 2) COM+ system directory retrieved from GetCorSystemDirectory() using the shim. 3) /LIB command-line option. 4) LIB environment variable.
1) Current working directory. This is the directory the user is running the compiler from.
2) COM+ system directory retrieved from GetCorSystemDirectory() using the shim.
3) /LIB command-line option.
4) LIB environment variable.
Changes that are not likely to require source code changes, except in very obscure cases
1. The file csc.rsp in the directory containing csc.exe is always read for command-line arguments as if it were a response file. 2. The file csc.rsp in the current directory is always read for command-line arguments as if it were a response file.
1. The file csc.rsp in the directory containing csc.exe is always read for command-line arguments as if it were a response file.
2. The file csc.rsp in the current directory is always read for command-line arguments as if it were a response file.
New warnings
Programming C# for Beginners