diff --git a/.localization-config b/.localization-config
new file mode 100644
index 0000000000000..cf26e2c8bcce5
--- /dev/null
+++ b/.localization-config
@@ -0,0 +1,34 @@
+{
+ "Filters": [
+ {
+ "Files": [
+ "**/*.md"
+ ],
+ "Priorities": [
+ {
+ "Priority": "ht",
+ "Locales": [
+ "cs-cz",
+ "de-de",
+ "es-es",
+ "fr-fr",
+ "it-it",
+ "ja-jp",
+ "ko-kr",
+ "pl-pl",
+ "pt-br",
+ "ru-ru",
+ "tr-tr",
+ "zh-cn",
+ "zh-tw"
+ ],
+ "Type": "ht"
+ }
+ ]
+ }
+ ],
+ "IncludeDependencies": true,
+ "AutoPush": true,
+ "XliffVersion": "1.2",
+ "UseJavascriptMarkdownTransformer": true
+}
\ No newline at end of file
diff --git a/_zip/msdn.4.5.2.zip b/_zip/msdn.4.5.2.zip
new file mode 100644
index 0000000000000..65a3dae3b1317
Binary files /dev/null and b/_zip/msdn.4.5.2.zip differ
diff --git a/_zip/namespaces.4.5.2.zip b/_zip/namespaces.4.5.2.zip
new file mode 100644
index 0000000000000..2ed7c4c711212
Binary files /dev/null and b/_zip/namespaces.4.5.2.zip differ
diff --git a/_zip/office15.zip b/_zip/office15.zip
new file mode 100644
index 0000000000000..268b785c831bc
Binary files /dev/null and b/_zip/office15.zip differ
diff --git a/_zip/vs.110.zip b/_zip/vs.110.zip
new file mode 100644
index 0000000000000..75d6e538f97fb
Binary files /dev/null and b/_zip/vs.110.zip differ
diff --git a/_zip/vs.140.zip b/_zip/vs.140.zip
new file mode 100644
index 0000000000000..97b2d3677f9a0
Binary files /dev/null and b/_zip/vs.140.zip differ
diff --git a/api/index.md b/api/index.md
index 771fe77bfd197..12f392ced9f28 100644
--- a/api/index.md
+++ b/api/index.md
@@ -488,7 +488,7 @@ The following is a list of namespaces in the .NET Core class library. Each names
@System.Threading
- Provides types that enable multithreaded programming. In addition to classes for synchronizing thread activities and access to data (such as @System.Threading.Mutex, @System.Threading.Monitor, @System.Threading.Interlocked, and @System.Threading.AutoResetEvent), this namespace includes a @System.Threading.ThreadPool class that allows you to use a pool of system-supplied threads, and a @System.Threading.Timer class that executes callback methods on thread pool threads.
+ Provides types that enable multithreaded programming. In addition to classes for synchronizing thread activities and access to data (such as @System.Threading.Mutex, @System.Threading.Monitor, @System.Threading.Interlocked, and [AutoResetEvent](xref:System.Threading.AutoResetEvent)), this namespace includes a @System.Threading.ThreadPool class that allows you to use a pool of system-supplied threads, and a @System.Threading.Timer class that executes callback methods on thread pool threads.
diff --git a/docfx.json b/docfx.json
index 2f5caec3cbeba..4d9ffbfc82235 100644
--- a/docfx.json
+++ b/docfx.json
@@ -79,6 +79,7 @@
"author": "dotnet-bot"
},
"dest": "_site",
- "template": [ "docs.html" ]
+ "template": [ "docs.html" ],
+ "xref": ["_zip/msdn.4.5.2.zip", "_zip/namespaces.4.5.2.zip", "_zip/vs.110.zip", "_zip/vs.140.zip", "_zip/office15.zip"]
}
-}
+}
\ No newline at end of file
diff --git a/docs/csharp/concepts.md b/docs/csharp/concepts.md
index 097dadfad46ea..c0e7ed97a0de0 100644
--- a/docs/csharp/concepts.md
+++ b/docs/csharp/concepts.md
@@ -12,7 +12,7 @@ ms.devlang: dotnet
ms.assetid: 809148dd-b231-4f2c-bb81-f5bfc426378d
---
-# 🔧 C# Concepts
+# C# Concepts
> **Note**
@@ -22,4 +22,4 @@ ms.assetid: 809148dd-b231-4f2c-bb81-f5bfc426378d
>
> If you would like to review early drafts and outlines of this topic, please leave a note with your contact information in the issue.
>
-> Learn more about how you can contribute on GitHub.
\ No newline at end of file
+> Learn more about how you can contribute on GitHub.
diff --git a/docs/csharp/csharp.md b/docs/csharp/csharp.md
new file mode 100644
index 0000000000000..dc01cc7fb85f0
--- /dev/null
+++ b/docs/csharp/csharp.md
@@ -0,0 +1,70 @@
+---
+title: "C# | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "documentation [C#]"
+ - "Help, Visual C# documentation"
+ - "C# language"
+ - "Visual C#"
+ms.assetid: 7f4f8103-7068-4f1d-92c7-3c4519b6edbc
+caps.latest.revision: 47
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# C#
+C# (pronounced "C sharp") is a programming language that is designed for building a variety of applications that run on the .NET Framework. C# is simple, powerful, type-safe, and object-oriented. The many innovations in C# enable rapid application development while retaining the expressiveness and elegance of C-style languages.
+
+ If you don't already have C#, you can acquire a version of Visual Studio that includes C# for free from the [Visual Studio](https://www.visualstudio.com/products/free-developer-offers-vs) site.
+
+## In This Section
+ [Getting Started with C#](../csharp/getting-started/getting-started-with-csharp.md)
+ Introduces the features of C# for programmers who are new to the language or are new to [!INCLUDE[vsprvs](../csharp/includes/vsprvs_md.md)], and provides a roadmap for finding Help about [!INCLUDE[vsprvs](../csharp/includes/vsprvs_md.md)].
+
+ [Using the Visual Studio Development Environment for C#](/visualstudio/csharp-ide/using-the-visual-studio-development-environment-for-csharp)
+ Introduces the [!INCLUDE[csprcs](../csharp/includes/csprcs_md.md)] development environment.
+
+ [C# Programming Guide](../csharp/programming-guide/index.md)
+ Provides information and practical examples about how to use C# language constructs.
+
+ [C# Reference](../csharp/language-reference/index.md)
+ Provides detailed reference information about C# programming concepts, keywords, types, operators, attributes, preprocessor directives, compiler switches, compiler errors, and compiler warnings.
+
+ [C# Samples](http://code.msdn.microsoft.com/site/search?f%5B0%5D.Type=ProgrammingLanguage&f%5B0%5D.Value=C%23&f%5B0%5D.Text=C%23)
+ MSDN Code Gallery filtered for C#.
+
+ [Walkthroughs](../csharp/walkthroughs.md)
+ Provides links to programming walkthroughs that use C# and a brief description of each walkthrough.
+
+## Related Sections
+ [C# Language Specification](../csharp/language-reference/language-specification.md)
+ Links to the latest version of the C# Specifications in Microsoft Word format.
+
+## See Also
+ [Getting Started with Visual C# and Visual Basic](/visualstudio/ide/getting-started-with-visual-csharp-and-visual-basic)
+ [.NET Development](https://msdn.microsoft.com/library/ff361664)
\ No newline at end of file
diff --git a/docs/csharp/getting-started/additional-resources.md b/docs/csharp/getting-started/additional-resources.md
new file mode 100644
index 0000000000000..0ceb8b1c1ff1d
--- /dev/null
+++ b/docs/csharp/getting-started/additional-resources.md
@@ -0,0 +1,93 @@
+---
+title: "Additional Resources for Visual C# Programmers | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "newsgroups [C#]"
+ - "Help, C# resources"
+ - "Visual C#, further information"
+ - "C# language, further information"
+ - "forums [C#]"
+ - "Visual C#, additional resources"
+ms.assetid: cdec0df0-89ef-4ff1-8ccf-26fef47e61cb
+caps.latest.revision: 27
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Additional Resources for Visual C# Programmers
+The following sites can help you find answers to common problems.
+
+## Microsoft Resources
+
+### On the Web
+ [Microsoft Visual C# Developer Center](http://go.microsoft.com/fwlink/?LinkId=47811)
+ Provides code samples, upgrade information, downloads, and technical content.
+
+ [Microsoft Help and Support](http://go.microsoft.com/fwlink/?LinkID=108287)
+ Provides access to Knowledge Base (KB) articles, downloads and updates, support Webcasts, and other services.
+
+ [CodePlex](http://go.microsoft.com/fwlink/?LinkId=137330)
+ Hosts open source software projects. You can use CodePlex to create new projects to share with the world or join others who have already started their own projects.
+
+### Forums
+ [Visual C# Language](http://go.microsoft.com/fwlink/?LinkId=165947)
+ Provides a forum for questions about and general discussions of the C# language and compiler.
+
+ [Visual C# General](http://go.microsoft.com/fwlink/?LinkId=165948)
+ Provides a forum for general discussion and questions regarding Visual C#.
+
+ [Visual C# IDE](http://go.microsoft.com/fwlink/?LinkId=165951)
+ Provides a forum for discussions about the C# IDE.
+
+ [MSDN Forums](http://go.microsoft.com/fwlink/?LinkId=157697)
+ Provides information about forums in which you can post questions and answers, and also view and search existing user-generated Help content. You can also access the MSDN forums by clicking **MSDN Forums** on the **Help** menu.
+
+### Chats and Discussion Groups
+ [MSDN Discussion Groups](http://go.microsoft.com/fwlink/?LinkId=145961)
+ Provides a newsgroup experience, enabling you to connect as a community with experts from around the world.
+
+ [MSDN Chats](http://go.microsoft.com/fwlink/?LinkId=145962)
+ Provides discussions about Microsoft products and technologies. Each chat is hosted by one or more Microsoft experts. Transcripts are available for completed chats.
+
+### Videos and Webcasts
+ [Channel9](http://go.microsoft.com/fwlink/?LinkID=123827)
+ Provides a community through videos, Wikis, and forums.
+
+### Support
+ [File Bugs or Make Suggestions](http://go.microsoft.com/fwlink/?LinkID=79804)
+ Enables you to file bugs or provide suggestions to Microsoft about Visual Studio. You can also report a bug by clicking **Report a Bug** on the **Help** menu.
+
+## Third-Party Resources
+ MSDN's Web site provides information about current third-party sites and newsgroups of interest. For the most current list of resources available, see the [MSDN C# Community Web site](http://go.microsoft.com/fwlink/?LinkId=165945).
+
+## See Also
+ [C#](../../csharp/csharp.md)
+ [Getting Started with C#](../../csharp/getting-started/getting-started-with-csharp.md)
+ [Customizing the Editor](/visualstudio/ide/customizing-the-editor)
+ [How to: Get Involved in the Developer Community](http://msdn.microsoft.com/library/f1503d98-7a64-41b6-a6c7-0e42a533e9c5)
+ [How to: Send Feedback](http://msdn.microsoft.com/library/c9f1dd8f-bcb6-40ac-b896-1e9eca0bb209)
+ [Talk to Us](/visualstudio/ide/talk-to-us)
\ No newline at end of file
diff --git a/docs/csharp/getting-started/breaking-changes-in-visual-studio-2013.md b/docs/csharp/getting-started/breaking-changes-in-visual-studio-2013.md
new file mode 100644
index 0000000000000..d9cf84c3be12e
--- /dev/null
+++ b/docs/csharp/getting-started/breaking-changes-in-visual-studio-2013.md
@@ -0,0 +1,46 @@
+---
+title: "Visual C# Breaking Changes in Visual Studio 2013 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "breaking changes [C#]"
+ms.assetid: 399802e7-dd13-4bb6-9b41-8ab1446a322c
+caps.latest.revision: 34
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# Visual C# Breaking Changes in Visual Studio 2013
+No changes in Visual C# in [!INCLUDE[vs_dev12](../../csharp/getting-started/includes/vs_dev12_md.md)] will prevent an application that was created in Visual C# in Visual Studio 2012 from compiling or change the run-time behavior of such an application.
+
+## See Also
+ [Getting Started with C#](../../csharp/getting-started/getting-started-with-csharp.md)
+ [Lambda Expressions](../../csharp/programming-guide/statements-expressions-operators/lambda-expressions.md)
+ [Named and Optional Arguments](../../csharp/programming-guide/classes-and-structs/named-and-optional-arguments.md)
+ [params](../../csharp/language-reference/keywords/params.md)
+ [dynamic](../../csharp/language-reference/keywords/dynamic.md)
+ [When is a non-breaking language fix breaking?](http://go.microsoft.com/fwlink/?LinkId=259542)
\ No newline at end of file
diff --git a/docs/csharp/getting-started/getting-started-with-csharp.md b/docs/csharp/getting-started/getting-started-with-csharp.md
new file mode 100644
index 0000000000000..549dd3cf5daa7
--- /dev/null
+++ b/docs/csharp/getting-started/getting-started-with-csharp.md
@@ -0,0 +1,69 @@
+---
+title: "Getting Started with C# | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "Visual C#, getting started"
+ - "getting started, Visual C#"
+ms.assetid: d6ec050f-3956-4737-8030-a4fa3521d29f
+caps.latest.revision: 50
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# Getting Started with C#
+The following topics help you start developing applications by using C#. These topics will also introduce you to the many new features in Visual Studio and the C# language.
+
+## In This Section
+ [Visual C# Breaking Changes in Visual Studio 2013](../../csharp/getting-started/breaking-changes-in-visual-studio-2013.md)
+ Lists breaking changes in the C# compiler since the previous version.
+
+ [Introduction to the C# Language and the .NET Framework](../../csharp/getting-started/introduction-to-the-csharp-language-and-the-net-framework.md)
+ Provides an overview of the C# language and the .NET platform.
+
+ [Additional Resources for Visual C# Programmers](../../csharp/getting-started/additional-resources.md)
+ Provides links to Web sites and newsgroups that can help you find answers to common problems.
+
+## Related Sections
+ [Using the Visual Studio Development Environment for C#](/visualstudio/csharp-ide/using-the-visual-studio-development-environment-for-csharp)
+ Provides a guide to using the [!INCLUDE[csprcs](../../csharp/includes/csprcs_md.md)] integrated development environment.
+
+ [C# Programming Guide](../../csharp/programming-guide/index.md)
+ Provides information about C# programming concepts, and describes how to perform various tasks in C#.
+
+ [C# Reference](../../csharp/language-reference/index.md)
+ Provides detailed reference information about C# keywords, operators, preprocessor directives, compiler options, and compiler errors and warnings.
+
+ [Visual Studio Samples](/visualstudio/ide/visual-studio-samples)
+ Provides information about how you can access online samples.
+
+ [Walkthroughs](../../csharp/walkthroughs.md)
+ Provides links to programming walkthroughs that use C# and a brief description of each walkthrough.
+
+## See Also
+ [Getting Started with Visual C# and Visual Basic](/visualstudio/ide/getting-started-with-visual-csharp-and-visual-basic)
+ [Beginner Developer Learning Center](http://go.microsoft.com/fwlink/?LinkId=123826)
\ No newline at end of file
diff --git a/docs/csharp/getting-started/includes/csprcsxpr_md.md b/docs/csharp/getting-started/includes/csprcsxpr_md.md
new file mode 100644
index 0000000000000..3c8c7d32df23f
--- /dev/null
+++ b/docs/csharp/getting-started/includes/csprcsxpr_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Visual C# Express
\ No newline at end of file
diff --git a/docs/csharp/getting-started/includes/dnprdnshort_md.md b/docs/csharp/getting-started/includes/dnprdnshort_md.md
new file mode 100644
index 0000000000000..5edf6f3463fd0
--- /dev/null
+++ b/docs/csharp/getting-started/includes/dnprdnshort_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+.NET Framework
\ No newline at end of file
diff --git a/docs/csharp/getting-started/includes/vbteclinqext_md.md b/docs/csharp/getting-started/includes/vbteclinqext_md.md
new file mode 100644
index 0000000000000..b77a9c278762b
--- /dev/null
+++ b/docs/csharp/getting-started/includes/vbteclinqext_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Language-Integrated Query (LINQ)
\ No newline at end of file
diff --git a/docs/csharp/getting-started/includes/vs_dev12_md.md b/docs/csharp/getting-started/includes/vs_dev12_md.md
new file mode 100644
index 0000000000000..efa421ccc6dda
--- /dev/null
+++ b/docs/csharp/getting-started/includes/vs_dev12_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Visual Studio 2013
\ No newline at end of file
diff --git a/docs/csharp/getting-started/index.md b/docs/csharp/getting-started/index.md
index c2af200cc38ec..c7e85bca2467a 100644
--- a/docs/csharp/getting-started/index.md
+++ b/docs/csharp/getting-started/index.md
@@ -13,7 +13,7 @@ ms.assetid: b77c7263-7cbf-4729-9626-8fbc3f5f14d9
---
-# 🔧 Getting started
+# Getting started
> **Note**
>
diff --git a/docs/csharp/getting-started/introduction-to-the-csharp-language-and-the-net-framework.md b/docs/csharp/getting-started/introduction-to-the-csharp-language-and-the-net-framework.md
new file mode 100644
index 0000000000000..c8d4827f69338
--- /dev/null
+++ b/docs/csharp/getting-started/introduction-to-the-csharp-language-and-the-net-framework.md
@@ -0,0 +1,100 @@
+---
+title: "Introduction to the C# Language and the .NET Framework | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "C# language, about C# language"
+ - "Visual C#, about"
+ms.assetid: 0a2dff4e-cd84-42ff-8141-e89889b24081
+caps.latest.revision: 32
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Introduction to the C# Language and the .NET Framework
+C# is an elegant and type-safe object-oriented language that enables developers to build a variety of secure and robust applications that run on the [!INCLUDE[dnprdnshort](../../csharp/getting-started/includes/dnprdnshort_md.md)]. You can use C# to create Windows client applications, XML Web services, distributed components, client-server applications, database applications, and much, much more. Visual C# provides an advanced code editor, convenient user interface designers, integrated debugger, and many other tools to make it easier to develop applications based on the C# language and the [!INCLUDE[dnprdnshort](../../csharp/getting-started/includes/dnprdnshort_md.md)].
+
+> [!NOTE]
+> The [!INCLUDE[csprcs](../../csharp/includes/csprcs_md.md)] documentation assumes that you have an understanding of basic programming concepts. If you are a complete beginner, you might want to explore [!INCLUDE[csprcsxpr](../../csharp/getting-started/includes/csprcsxpr_md.md)], which is available on the Web. You can also take advantage of books and Web resources about C# to learn practical programming skills.
+
+## C# Language
+ C# syntax is highly expressive, yet it is also simple and easy to learn. The curly-brace syntax of C# will be instantly recognizable to anyone familiar with C, C++ or Java. Developers who know any of these languages are typically able to begin to work productively in C# within a very short time. C# syntax simplifies many of the complexities of C++ and provides powerful features such as nullable value types, enumerations, delegates, lambda expressions and direct memory access, which are not found in Java. C# supports generic methods and types, which provide increased type safety and performance, and iterators, which enable implementers of collection classes to define custom iteration behaviors that are simple to use by client code. [!INCLUDE[vbteclinqext](../../csharp/getting-started/includes/vbteclinqext_md.md)] expressions make the strongly-typed query a first-class language construct.
+
+ As an object-oriented language, C# supports the concepts of encapsulation, inheritance, and polymorphism. All variables and methods, including the `Main` method, the application's entry point, are encapsulated within class definitions. A class may inherit directly from one parent class, but it may implement any number of interfaces. Methods that override virtual methods in a parent class require the `override` keyword as a way to avoid accidental redefinition. In C#, a struct is like a lightweight class; it is a stack-allocated type that can implement interfaces but does not support inheritance.
+
+ In addition to these basic object-oriented principles, C# makes it easy to develop software components through several innovative language constructs, including the following:
+
+- Encapsulated method signatures called *delegates*, which enable type-safe event notifications.
+
+- Properties, which serve as accessors for private member variables.
+
+- Attributes, which provide declarative metadata about types at run time.
+
+- Inline XML documentation comments.
+
+- [!INCLUDE[vbteclinqext](../../csharp/getting-started/includes/vbteclinqext_md.md)] which provides built-in query capabilities across a variety of data sources.
+
+ If you have to interact with other Windows software such as COM objects or native Win32 DLLs, you can do this in C# through a process called "Interop." Interop enables C# programs to do almost anything that a native C++ application can do. C# even supports pointers and the concept of "unsafe" code for those cases in which direct memory access is absolutely critical.
+
+ The C# build process is simple compared to C and C++ and more flexible than in Java. There are no separate header files, and no requirement that methods and types be declared in a particular order. A C# source file may define any number of classes, structs, interfaces, and events.
+
+ The following are additional C# resources:
+
+- For a good general introduction to the language, see Chapter 1 of the [C# Language Specification](../../csharp/language-reference/language-specification.md).
+
+- For detailed information about specific aspects of the C# language, see the [C# Reference](../../csharp/language-reference/index.md).
+
+- For more information about [!INCLUDE[vbteclinq](../../csharp/includes/vbteclinq_md.md)], see [LINQ (Language-Integrated Query)](http://msdn.microsoft.com/library/a73c4aec-5d15-4e98-b962-1274021ea93d).
+
+- To find the latest articles and resources from the Visual C# team, see the [Visual C# Developer Center](http://go.microsoft.com/fwlink/?LinkId=47811).
+
+## .NET Framework Platform Architecture
+ C# programs run on the [!INCLUDE[dnprdnshort](../../csharp/getting-started/includes/dnprdnshort_md.md)], an integral component of Windows that includes a virtual execution system called the common language runtime (CLR) and a unified set of class libraries. The CLR is the commercial implementation by Microsoft of the common language infrastructure (CLI), an international standard that is the basis for creating execution and development environments in which languages and libraries work together seamlessly.
+
+ Source code written in C# is compiled into an intermediate language (IL) that conforms to the CLI specification. The IL code and resources, such as bitmaps and strings, are stored on disk in an executable file called an assembly, typically with an extension of .exe or .dll. An assembly contains a manifest that provides information about the assembly's types, version, culture, and security requirements.
+
+ When the C# program is executed, the assembly is loaded into the CLR, which might take various actions based on the information in the manifest. Then, if the security requirements are met, the CLR performs just in time (JIT) compilation to convert the IL code to native machine instructions. The CLR also provides other services related to automatic garbage collection, exception handling, and resource management. Code that is executed by the CLR is sometimes referred to as "managed code," in contrast to "unmanaged code" which is compiled into native machine language that targets a specific system. The following diagram illustrates the compile-time and run-time relationships of C# source code files, the .NET Framework class libraries, assemblies, and the CLR.
+
+ 
+
+ Language interoperability is a key feature of the [!INCLUDE[dnprdnshort](../../csharp/getting-started/includes/dnprdnshort_md.md)]. Because the IL code produced by the C# compiler conforms to the Common Type Specification (CTS), IL code generated from C# can interact with code that was generated from the .NET versions of Visual Basic, Visual C++, or any of more than 20 other CTS-compliant languages. A single assembly may contain multiple modules written in different .NET languages, and the types can reference each other just as if they were written in the same language.
+
+ In addition to the run time services, the [!INCLUDE[dnprdnshort](../../csharp/getting-started/includes/dnprdnshort_md.md)] also includes an extensive library of over 4000 classes organized into namespaces that provide a wide variety of useful functionality for everything from file input and output to string manipulation to XML parsing, to Windows Forms controls. The typical C# application uses the [!INCLUDE[dnprdnshort](../../csharp/getting-started/includes/dnprdnshort_md.md)] class library extensively to handle common "plumbing" chores.
+
+ For more information about the .NET Framework, see [Overview of the Microsoft .NET Framework](http://msdn.microsoft.com/en-us/d05daf50-00fe-45c7-8383-06fe41697355).
+
+## Featured Book Chapters
+ [C# Language Fundamentals](http://go.microsoft.com/fwlink/?LinkId=195416) in [Learning C# 3.0: Master the fundamentals of C# 3.0](http://go.microsoft.com/fwlink/?LinkId=195412)
+
+ [C# and .NET Programming](http://go.microsoft.com/fwlink/?LinkId=195413) in [Learning C# 3.0: Master the fundamentals of C# 3.0](http://go.microsoft.com/fwlink/?LinkId=195412)
+
+ [Introducing C#](http://go.microsoft.com/fwlink/?LinkId=221226) in [Beginning Visual C# 2010](http://go.microsoft.com/fwlink/?LinkId=221214)
+
+ [Visual Studio 2008 and C# Express 2008](http://go.microsoft.com/fwlink/?LinkId=195414) in [Learning C# 3.0: Master the fundamentals of C# 3.0](http://go.microsoft.com/fwlink/?LinkId=195412)
+
+## See Also
+ [C#](../../csharp/csharp.md)
+ [Getting Started with Visual C# and Visual Basic](/visualstudio/ide/getting-started-with-visual-csharp-and-visual-basic)
\ No newline at end of file
diff --git a/docs/csharp/getting-started/media/netarchitecture.png b/docs/csharp/getting-started/media/netarchitecture.png
new file mode 100644
index 0000000000000..174571e03e542
Binary files /dev/null and b/docs/csharp/getting-started/media/netarchitecture.png differ
diff --git a/docs/csharp/getting-started/whats-new.md b/docs/csharp/getting-started/whats-new.md
new file mode 100644
index 0000000000000..8774fdbb1876c
--- /dev/null
+++ b/docs/csharp/getting-started/whats-new.md
@@ -0,0 +1,100 @@
+---
+title: "What's New for Visual C# | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+ms.assetid: 9f18dc26-27fa-4603-a639-b573f07a117b
+caps.latest.revision: 39
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# What's New for Visual C#
+This page lists key feature names for each version of C# with descriptions of the new and enhanced features in the lastest version of the language.
+
+## Previous Versions
+ C# 1, Visual Studio .NET 2002
+ First release
+
+ C# 1.1, Visual Studio .NET 2003
+ `#line` pragma and xml doc comments
+
+ C# 2, Visual Studio .NET 2005
+ Anonymous methods, generics, nullable types, iterators/yield, `static` classes, co/contra variance for delegates
+
+ C# 3, Visual Studio .NET 2008
+ Object and collection initializers, lambda expressions, extension methods, anonymous types, automatic properties, Language Integrated Query (LINQ), anonymous types, local `var` type inference, LINQ
+
+ C# 4, Visual Studio .NET 2010
+ `Dynamic`, named arguments, optional parameters, generic co/contra variance
+
+ C# 5, Visual Studio .NET 2012
+ `Async` / `await`, caller information attributes
+
+ Visual Studio .NET 2013
+ Bug fixes, performance improvements, and technology previews of .NET Compiler Platform (“Roslyn”)
+
+ C# 6, Visual Studio .NET 2015
+ Current version, see below
+
+## Current Version
+ [nameof](../../csharp/language-reference/keywords/nameof.md)
+ You can get the unqualified string name of a type or member for use in an error message without hard coding a string. This allows your code to remain correct when refactoring. This feature is also useful for hooking up model-view-controller MVC links and firing property changed events.
+
+ [String Interpolation](../../csharp/language-reference/keywords/interpolated-strings.md)
+ You can use string interpolation expressions to construct strings. An interpolated string expression looks like a template string that contains expressions. C# creates a string by replacing the expressions with the ToString represenations of the expressions’ results. An interpolated string is easier to understand with respect to arguments than [Composite Formatting](http://msdn.microsoft.com/library/87b7d528-73f6-43c6-b71a-f23043039a49).
+
+ [Null-conditional Member Access and Indexing](../../csharp/language-reference/operators/null-conditional-operators.md)
+ You can test for null in a very light syntactic way before performing a member access (`?.`) or index (`?[]`) operation. These operators help you write less code to handle null checks, especially for descending into data structures. If the left operand or object reference is null, the operations returns null.
+
+ [Index Initializers](../../csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md)
+ You can now initialize specific elements of a collection that supports indexing, such as initializing a dictionary.
+
+ [Collection Initializer and Add Extension Methods](../../csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md)
+ You can use initializers for collections now when the collection has an Add Extension method. Previously the Add method had to be an instance method.
+
+ **Overload Resolution**
+ The compiler has improved overload resolution that results in more code just working the way you would expect it to behave. One place where you might stop noticing a problem is when choosing between overloads taking nullable value types, or when passing method groups (instead of lambdas) to overloads that take delegates.
+
+ [Exception Filters](../../csharp/language-reference/keywords/try-catch.md)
+ You can use exception filers in `catch` clauses to determine whether a catch clause should handle the exception. Without this feature, you have to rethrow the exception, which clips the call stack reported in the rethrown exception.
+
+ [Await in Catch and Finally Blocks](../../csharp/language-reference/keywords/try-catch.md)
+ You can use `await` in `catch` and `finally` clauses.
+
+ [Auto-property Initializers](../../csharp/programming-guide/classes-and-structs/auto-implemented-properties.md)
+ You can initialize auto-properties now similarly to how you initialize fields.
+
+ [Getter-only Auto-properites](../../csharp/programming-guide/classes-and-structs/auto-implemented-properties.md)
+ You can define read-only auto-properties now without having to define a property with complete property syntax. You can initialize the property where you declare it or in the type’s constructor.
+
+ **Function Members with Expression Bodies**
+ You can declare members with expression-bodies of code in the same lightweight syntax you use with lambda expressions. See [Methods](../../csharp/programming-guide/classes-and-structs/methods.md), [Properties](../../csharp/programming-guide/classes-and-structs/properties.md), [Indexers](../../csharp/programming-guide/indexers/index.md), and [Overloadable Operators](../../csharp/programming-guide/statements-expressions-operators/overloadable-operators.md).
+
+ [Using Static](../../csharp/language-reference/keywords/using-directive.md)
+ You can import accessible static members of static types so that you can refer to the members without qualifying the access with the type’s name.
+
+## See Also
+ [What's New in Visual Studio 2015](/visualstudio/ide/what-s-new-in-visual-studio-2015)
\ No newline at end of file
diff --git a/docs/csharp/includes/csprcs_md.md b/docs/csharp/includes/csprcs_md.md
new file mode 100644
index 0000000000000..71d63006f278b
--- /dev/null
+++ b/docs/csharp/includes/csprcs_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Visual C#
\ No newline at end of file
diff --git a/docs/csharp/includes/vbtecdlinq_md.md b/docs/csharp/includes/vbtecdlinq_md.md
new file mode 100644
index 0000000000000..88250d0caf3a4
--- /dev/null
+++ b/docs/csharp/includes/vbtecdlinq_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+LINQ to SQL
\ No newline at end of file
diff --git a/docs/csharp/includes/vbteclinq_md.md b/docs/csharp/includes/vbteclinq_md.md
new file mode 100644
index 0000000000000..d24982b4b045a
--- /dev/null
+++ b/docs/csharp/includes/vbteclinq_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+LINQ
\ No newline at end of file
diff --git a/docs/csharp/includes/vs_dev11_long_md.md b/docs/csharp/includes/vs_dev11_long_md.md
new file mode 100644
index 0000000000000..b422542b1dfd6
--- /dev/null
+++ b/docs/csharp/includes/vs_dev11_long_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Visual Studio 2012
\ No newline at end of file
diff --git a/docs/csharp/includes/vsprvs_md.md b/docs/csharp/includes/vsprvs_md.md
new file mode 100644
index 0000000000000..bc46fcad8dc99
--- /dev/null
+++ b/docs/csharp/includes/vsprvs_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Visual Studio
\ No newline at end of file
diff --git a/docs/csharp/includes/win8_appname_long_md.md b/docs/csharp/includes/win8_appname_long_md.md
new file mode 100644
index 0000000000000..10f8dcf96bbe5
--- /dev/null
+++ b/docs/csharp/includes/win8_appname_long_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Windows 8.x Store
\ No newline at end of file
diff --git a/docs/csharp/includes/wrt_md.md b/docs/csharp/includes/wrt_md.md
new file mode 100644
index 0000000000000..be177d7661078
--- /dev/null
+++ b/docs/csharp/includes/wrt_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Windows Runtime
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0001.md b/docs/csharp/language-reference/compiler-messages/cs0001.md
new file mode 100644
index 0000000000000..fff756fc4dd05
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0001.md
@@ -0,0 +1,41 @@
+---
+title: "Compiler Error CS0001 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0001"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0001"
+ms.assetid: 5e4564df-ba1c-4d56-a71c-e383d7c3dda2
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0001
+Internal compiler error
+
+ Try to determine whether the compiler is failing because of its inability to parse unexpected syntax. If you receive this error repeatedly, please contact Microsoft.
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0006.md b/docs/csharp/language-reference/compiler-messages/cs0006.md
new file mode 100644
index 0000000000000..a03da6b7aedb8
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0006.md
@@ -0,0 +1,41 @@
+---
+title: "Compiler Error CS0006 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0006"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0006"
+ms.assetid: fe029a0e-d85a-4d8e-8a46-01f6120092fe
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0006
+Metadata file 'dll_name' could not be found
+
+ The program was compiled and explicitly passed the name of a file that contained metadata; however, the .dll was not found. For more information, see [/reference (C# Compiler Options)](../../../csharp/language-reference/compiler-options/reference-compiler-option.md).
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0007.md b/docs/csharp/language-reference/compiler-messages/cs0007.md
new file mode 100644
index 0000000000000..c3e702edb85cb
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0007.md
@@ -0,0 +1,43 @@
+---
+title: "Compiler Error CS0007 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0007"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0007"
+ms.assetid: d65849cf-2713-454a-b928-3c8aa8fc993e
+caps.latest.revision: 6
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0007
+Unexpected common language runtime initialization error — 'description'
+
+ This error occurs if the runtime could not be loaded. This could occur if the version of the common language runtime that the compiler attempts to load is not present on the machine, or if the common language runtime installation or configuration is corrupt.
+
+ This can happen if the `csc.exe.config` file was changed. This file is configured during setup and should not be changed. If there is a possibility that the `csc.exe.config` file was changed, check the file to make sure that the version of the runtime specified in the file is present on the machine. If the correct version is present, it may be corrupted. Reinstall the common language runtime.
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0015.md b/docs/csharp/language-reference/compiler-messages/cs0015.md
new file mode 100644
index 0000000000000..c2270c74b3ad8
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0015.md
@@ -0,0 +1,69 @@
+---
+title: "Compiler Error CS0015 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0015"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0015"
+ms.assetid: e9d3272b-2b80-435a-98ef-79bff158ae7b
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# Compiler Error CS0015
+The name of type 'type' is too long
+
+ The fully qualified name of a user-defined type must have fewer than 1024 characters, including the periods.
+
+ The following sample generates CS0015:
+
+```cs
+// CS0015.cs
+
+// Remove a C from one of the namespace names or the class name to resolve the error by
+// reducing the number of characters in the qualified class name to fewer than 1024.
+
+namespace CC
+{
+ // The following namespace name has 510 characters.
+ namespace CCC510charsCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ {
+ // The following class name has 510 characters. The qualified class name,
+ // CC.CCC510chars…C.CCCC510chars…C (namespace.namespace.class), has 1024
+ // characters, which causes compiler error CS0015.
+ public class CCCC510charsCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ {
+ public static void Main()
+ {
+ }
+ }
+ }
+}
+
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0016.md b/docs/csharp/language-reference/compiler-messages/cs0016.md
new file mode 100644
index 0000000000000..9b00e28c2d7ba
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0016.md
@@ -0,0 +1,41 @@
+---
+title: "Compiler Error CS0016 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0016"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0016"
+ms.assetid: da62084c-7a18-4858-9034-d1fe099bf34c
+caps.latest.revision: 6
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0016
+Could not write to output file 'file' — 'reason'
+
+ The compiler could not write to an output file. Check the path to the file to make sure it exists. If a previously built file is already at the location, make sure it is writeable, and that no process currently has a lock on the file. For example,make sure your executable is not running when you attempt to build.
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0019.md b/docs/csharp/language-reference/compiler-messages/cs0019.md
new file mode 100644
index 0000000000000..4ce59c7800667
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0019.md
@@ -0,0 +1,101 @@
+---
+title: "Compiler Error CS0019 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0019"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0019"
+ms.assetid: 5a25be41-535b-4850-a230-9a385e01fd20
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0019
+Operator 'operator' cannot be applied to operands of type 'type' and 'type'
+
+ A binary operator is applied to data types that do not support it. For example, you cannot use the [||](../../../csharp/language-reference/operators/conditional-or-operator.md) operator on strings, you cannot use [+](../../../csharp/language-reference/operators/addition-operator.md) , [-](../../../csharp/language-reference/operators/subtraction-operator.md) , [\<](../../../csharp/language-reference/operators/less-than-operator.md) , or [>](../../../csharp/language-reference/operators/greater-than-operator.md) operators on [bool](../../../csharp/language-reference/keywords/bool.md) variables, and you cannot use the [==](../../../csharp/language-reference/operators/equality-comparison-operator.md) operator with a `struct` type unless the type explicitly overloads that operator.
+
+ If you encounter this error with a class type, it is because the class does not overload the operator. For more information, see [Overloadable Operators](../../../csharp/programming-guide/statements-expressions-operators/overloadable-operators.md).
+
+## Example
+ In the following example, CS0019 is generated in two places because [bool](../../../csharp/language-reference/keywords/bool.md) in C# is not convertible to [int](../../../csharp/language-reference/keywords/int.md). CS0019 also is generated when the subtraction operator is applied to a string. The addition operator (+) can be used with string operands because that operator is overloaded by the `String` class to perform string concatenation.
+
+```
+static void Main()
+{
+ bool result = true;
+ if (result > 0) //CS0019
+ {
+ // Do something.
+ }
+
+ int i = 1;
+ // You cannot compare an integer and a boolean value.
+ if (i == true) //CS0019
+ {
+ //Do something...
+ }
+
+ // The following use of == causes no error. It is the comparison of
+ // an integer and a boolean value that causes the error in the
+ // previous if statement.
+ if (result == true)
+ {
+ //Do something...
+ }
+
+ string s = "Just try to subtract me.";
+ float f = 100 - s; // CS0019
+}
+
+```
+
+## Example
+ In the following example, conditional logic must be specified outside the . You can pass only one predefined symbol to the .
+
+ The following sample generates CS0019.
+
+```
+// CS0019_a.cs
+// compile with: /target:library
+using System.Diagnostics;
+public class MyClass
+{
+ [ConditionalAttribute("DEBUG" || "TRACE")] // CS0019
+ public void TestMethod() {}
+
+ // OK
+ [ConditionalAttribute("DEBUG"), ConditionalAttribute("TRACE")]
+ public void TestMethod2() {}
+}
+
+```
+
+## See Also
+ [Operators](../../../csharp/programming-guide/statements-expressions-operators/operators.md)
+ [Implicit Numeric Conversions Table](../../../csharp/language-reference/keywords/implicit-numeric-conversions-table.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0029.md b/docs/csharp/language-reference/compiler-messages/cs0029.md
new file mode 100644
index 0000000000000..baf84a2ef4255
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0029.md
@@ -0,0 +1,110 @@
+---
+title: "Compiler Error CS0029 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0029"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0029"
+ms.assetid: 63c3e574-1868-4a9e-923e-dcd9f38bce88
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0029
+Cannot implicitly convert type 'type' to 'type'
+
+ The compiler requires an explicit conversion. For example, you may need to cast an r-value to be the same type as an l-value. Or, you must provide conversion routines to support certain operator overloads.
+
+ Conversions must occur when assigning a variable of one type to a variable of a different type. When making an assignment between variables of different types, the compiler must convert the type on the right-hand side of the assignment operator to the type on the left-hand side of the assignment operator. Take the following the code:
+
+```
+int i = 50;
+long lng = 100;
+i = lng;
+```
+
+ `i = lng;` makes an assignment, but the data types of the variables on the left and right-hand side of the assignment operator don't match. Before making the assignment the compiler is implicitly converting the variable `lng`, which is of type long, to an int. This is implicit because no code explicitly instructed the compiler to perform this conversion. The problem with this code is that this is considered a narrowing conversion, and the compiler does not allow implicit narrowing conversions because there could be a potential loss of data.
+
+ A narrowing conversion exists when converting to a data type that occupies less storage space in memory than the data type we are converting from. For example, converting a long to an int would be considered a narrowing conversion. A long occupies 8 bytes of memory while an int occupies 4 bytes. To see how data loss can occur, consider the following sample:
+
+```
+int i = 50;
+long lng = 3147483647;
+i = lng;
+```
+
+ The variable `lng` now contains a value that cannot be stored in the variable `i` because it is too large. If we were to convert this value to an int type we would be losing some of our data and the converted value would not be the same as the value before the conversion.
+
+ A widening conversion would be the opposite of a narrowing conversion. With widening conversions, we are converting to a data type that occupies more storage space in memory than the data type we are converting from. Here is an example of a widening conversion:
+
+```
+int i = 50;
+long lng = 100;
+lng = i;
+```
+
+ Notice the difference between this code sample and the first. This time the variable `lng` is on the left-hand side of the assignment operator, so it is the target of our assignment. Before the assignment can be made, the compiler must implicitly convert the variable `i`, which is of type int, to type long. This is a widening conversion since we are converting from a type that occupies 4 bytes of memory (an int) to a type that occupies 8 bytes of memory (a long). Implicit widening conversions are allowed because there is no potential loss of data. Any value that can be stored in an int can also be stored in a long.
+
+ We know that implicit narrowing conversions are not allowed, so to be able to compile this code we need to explicitly convert the data type. Explicit conversions are done using casting. Casting is the term used in C# to describe converting one data type to another. To get the code to compile we would need to use the following syntax:
+
+```
+int i = 50;
+long lng = 100;
+i = (int) lng; // cast to int
+```
+
+ The third line of code tells the compiler to explicitly convert the variable `lng`, which is of type long, to an int before making the assignment. Remember that with a narrowing conversion, there is a potential loss of data. Narrowing conversions should be used with caution and even though the code will compile you may get unexpected results at run-time.
+
+ This discussion has only been for value types. When working with value types you work directly with the data stored in the variable. However, the .NET Framework also has reference types. When working with reference types you are working with a reference to a variable, not the actual data. Examples of reference types would be classes, interfaces and arrays. You cannot implicitly or explicitly convert one reference type to another unless the compiler allows the specific conversion or the appropriate conversion operators are implemented.
+
+ The following sample generates CS0029:
+
+```
+// CS0029.cs
+public class MyInt
+{
+ private int x = 0;
+
+ // Uncomment this conversion routine to resolve CS0029
+ /*
+ public static implicit operator int(MyInt i)
+ {
+ return i.x;
+ }
+ */
+
+ public static void Main()
+ {
+ MyInt myInt = new MyInt();
+ int i = myInt; // CS0029
+ }
+}
+```
+
+## See Also
+ [Conversion Operators](../../../csharp/programming-guide/statements-expressions-operators/conversion-operators.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0034.md b/docs/csharp/language-reference/compiler-messages/cs0034.md
new file mode 100644
index 0000000000000..238aa1e202308
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0034.md
@@ -0,0 +1,133 @@
+---
+title: "Compiler Error CS0034 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0034"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0034"
+ms.assetid: cb72ec9b-3a6b-40f3-b2ad-2ea122920edd
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0034
+Operator 'operator' is ambiguous on operands of type 'type1' and 'type2'
+
+ An operator was used on two objects and the compiler found more than one conversion. Because conversions have to be unique, you either have to make a cast or to make one of the conversions explicit. For more information, see [Conversion Operators](../../../csharp/programming-guide/statements-expressions-operators/conversion-operators.md).
+
+ The following sample generates CS0034:
+
+```
+// CS0034.cs
+public class A
+{
+ // allows for the conversion of A object to int
+ public static implicit operator int (A s)
+ {
+ return 0;
+ }
+
+ public static implicit operator string (A i)
+ {
+ return null;
+ }
+}
+
+public class B
+{
+ public static implicit operator int (B s)
+ // one way to resolve this CS0034 is to make one conversion explicit
+ // public static explicit operator int (B s)
+ {
+ return 0;
+ }
+
+ public static implicit operator string (B i)
+ {
+ return null;
+ }
+
+ public static implicit operator B (string i)
+ {
+ return null;
+ }
+
+ public static implicit operator B (int i)
+ {
+ return null;
+ }
+}
+
+public class C
+{
+ public static void Main ()
+ {
+ A a = new A();
+ B b = new B();
+ b = b + a; // CS0034
+ // another way to resolve this CS0034 is to make a cast
+ // b = b + (int)a;
+ }
+}
+```
+
+ In C# 1.1 a compiler bug made it possible to define a class that has implicit user-defined conversions to both `int` and `bool`, and to use a bitwise `AND` operator (`&`) on objects of that type. In C# 2.0, this bug was fixed to bring the compiler into compliance with the C# specification, and therefore the following code will now cause CS0034:
+
+```
+namespace CS0034
+{
+ class TestClass2
+ {
+ public void Test()
+ {
+ TestClass o1 = new TestClass();
+ TestClass o2 = new TestClass();
+ TestClass o3 = o1 & o2; //CS0034
+ }
+ }
+
+ class TestClass
+ {
+ public static implicit operator int(TestClass o)
+ {
+ return 1;
+ }
+
+ public static implicit operator TestClass(int v)
+ {
+ return new TestClass();
+ }
+
+ public static implicit operator bool(TestClass o)
+ {
+ return true;
+ }
+ }
+
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0038.md b/docs/csharp/language-reference/compiler-messages/cs0038.md
new file mode 100644
index 0000000000000..efadf63068d08
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0038.md
@@ -0,0 +1,68 @@
+---
+title: "Compiler Error CS0038 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0038"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0038"
+ms.assetid: ed378c79-c31b-4373-adfa-ee5dd2dccc9e
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0038
+Cannot access a nonstatic member of outer type 'type1' via nested type 'type2'
+
+ A field in a class is not automatically available to a nested class. To be available to a nested class, the field must be [static](../../../csharp/language-reference/keywords/static.md). Otherwise, you must create an instance of the outer class. For more information, see [Nested Types](../../../csharp/programming-guide/classes-and-structs/nested-types.md).
+
+ The following sample generates CS0038:
+
+```
+// CS0038.cs
+class OuterClass
+{
+ public int count;
+ // try the following line instead
+ // public static int count;
+
+ class InnerClass
+ {
+ void func()
+ {
+ // or, create an instance
+ // OuterClass class_inst = new OuterClass();
+ // int count2 = class_inst.count;
+ int count2 = count; // CS0038
+ }
+ }
+
+ public static void Main()
+ {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0039.md b/docs/csharp/language-reference/compiler-messages/cs0039.md
new file mode 100644
index 0000000000000..013410829a3f7
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0039.md
@@ -0,0 +1,75 @@
+---
+title: "Compiler Error CS0039 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0039"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0039"
+ms.assetid: f9fcb1c5-4ea4-41f3-826e-9ab0ac43dd3e
+caps.latest.revision: 17
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0039
+Cannot convert type 'type1' to 'type2' via a reference conversion, boxing conversion, unboxing conversion, wrapping conversion, or null type conversion
+
+ A conversion with the [as](../../../csharp/language-reference/keywords/as.md) operator is allowed by inheritance, reference conversions, and boxing conversions. For more information, see [Conversion Operators](../../../csharp/programming-guide/statements-expressions-operators/conversion-operators.md).
+
+## Example
+ The following example generates CS0039.
+
+```
+// CS0039.cs
+using System;
+class A
+{
+}
+class B: A
+{
+}
+class C: A
+{
+}
+class M
+{
+ static void Main()
+ {
+ A a = new C();
+ B b = new B();
+ C c;
+
+ // This is valid; there is a built-in reference
+ // conversion from A to C.
+ c = a as C;
+
+ //The following generates CS0039; there is no
+ // built-in reference conversion from B to C.
+ c = b as C; // CS0039
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0050.md b/docs/csharp/language-reference/compiler-messages/cs0050.md
new file mode 100644
index 0000000000000..7215904af2a8c
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0050.md
@@ -0,0 +1,63 @@
+---
+title: "Compiler Error CS0050 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0050"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0050"
+ms.assetid: dead2d28-f4db-4afe-b8dd-38968625f7c3
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0050
+Inconsistent accessibility: return type 'type' is less accessible than method 'method'
+
+ The return type and each of the types referenced in the formal parameter list of a method must be at least as accessible as the method itself. For more information, see [Access Modifiers](../../../csharp/programming-guide/classes-and-structs/access-modifiers.md).
+
+## Example
+ The following sample generates CS0050 because no accessiblity modifier is supplied for `MyClass` and its accessibility therefore defaults to `private`.
+
+```
+// CS0050.cs
+class MyClass //accessibility defaults to private
+// try the following line instead
+// public class MyClass
+{
+}
+
+public class MyClass2
+{
+ public static MyClass MyMethod() // CS0050
+ {
+ return new MyClass();
+ }
+
+ public static void Main() { }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0051.md b/docs/csharp/language-reference/compiler-messages/cs0051.md
new file mode 100644
index 0000000000000..03892e14dbdd5
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0051.md
@@ -0,0 +1,64 @@
+---
+title: "Compiler Error CS0051 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0051"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0051"
+ms.assetid: 62182e8d-c4a5-4853-a990-fd57a4f7c3b8
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0051
+Inconsistent accessibility: parameter type 'type' is less accessible than method 'method'
+
+ The return type and each of the types referenced in the formal parameter list of a method must be at least as accessible as the method itself. Make sure the types used in method signatures are not accidentally private due to the omission of the `public` modifier. For more information, see [Access Modifiers](../../../csharp/programming-guide/classes-and-structs/access-modifiers.md).
+
+## Example
+ The following sample generates CS0051:
+
+```
+// CS0051.cs
+public class A
+{
+ // Try making B public since F is public
+ // B is implicitly private here
+ class B
+ {
+ }
+
+ public static void F(B b) // CS0051
+ {
+ }
+
+ public static void Main()
+ {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0052.md b/docs/csharp/language-reference/compiler-messages/cs0052.md
new file mode 100644
index 0000000000000..875883ea6f7f0
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0052.md
@@ -0,0 +1,77 @@
+---
+title: "Compiler Error CS0052 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0052"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0052"
+ms.assetid: 3beed1c9-f482-4a48-b98d-b9fdc279b9d7
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0052
+Inconsistent accessibility: field type 'type' is less accessible than field 'field'
+
+ The type of a field cannot be less accessible than the field itself because all public constructs must return a publicly accessible object.
+
+## Example
+ The following sample generates CS0052:
+
+```cs
+// CS0052.cs
+public class MyClass2
+{
+ // The following line causes an error because the field, M, is declared
+ // as public, but the type, MyClass, is private. Therefore the type is
+ // less accessible than the field.
+ public MyClass M; // CS0052
+
+ private class MyClass
+ {
+ }
+ // One way to resolve the error is to change the accessibility of the type
+ // to public.
+ //public class MyClass
+ // Another solution is to change the accessibility of the field to private.
+ // private MyClass M;
+}
+
+ public class MainClass
+ {
+ public static void Main()
+ {
+ }
+ }
+```
+
+## See Also
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [Access Modifiers](../../../csharp/language-reference/keywords/access-modifiers.md)
+ [Accessibility Levels](../../../csharp/language-reference/keywords/accessibility-levels.md)
+ [Modifiers](../../../csharp/language-reference/keywords/modifiers.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0071.md b/docs/csharp/language-reference/compiler-messages/cs0071.md
new file mode 100644
index 0000000000000..64c0549643d35
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0071.md
@@ -0,0 +1,77 @@
+---
+title: "Compiler Error CS0071 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0071"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0071"
+ms.assetid: 787cbeae-fb2b-455a-ba10-811b956ed170
+caps.latest.revision: 14
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0071
+An explicit interface implementation of an event must use event accessor syntax
+
+ When explicitly implementing an [event](../../../csharp/language-reference/keywords/event.md) that was declared in an interface, you must use manually provide the `add` and `remove` event accessors that are typically provided by the compiler. The accessor code can connect the interface event to another event in your class (shown later in this topic), or to its own delegate type. For more information, see [How to: Implement Interface Events](../../../csharp/programming-guide/events/how-to-implement-interface-events.md).
+
+## Example
+ The following sample generates CS0071.
+
+```
+// CS0071.cs
+public delegate void MyEvent(object sender);
+
+interface ITest
+{
+ event MyEvent Clicked;
+}
+
+class Test : Itest
+{
+ event MyEvent ITest.Clicked; // CS0071
+
+ // try the following code instead
+/*
+private MyEvent clicked;
+
+ event MyEvent Itest.Clicked
+ {
+ add
+ {
+ clicked += value;
+ }
+ remove
+ {
+ clicked -= value;
+ }
+ }
+*/
+ public static void Main() { }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0103.md b/docs/csharp/language-reference/compiler-messages/cs0103.md
new file mode 100644
index 0000000000000..883398f5e84ab
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0103.md
@@ -0,0 +1,99 @@
+---
+title: "Compiler Error CS0103 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0103"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0103"
+ms.assetid: fd1f2104-a945-4dba-8137-8ef869826062
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0103
+The name 'identifier' does not exist in the current context
+
+ An attempt was made to use a name that does not exist in the class, [namespace](../../../csharp/language-reference/keywords/namespace.md), or scope. Check the spelling of the name and check your using directives and assembly references to make sure that the name that you are trying to use is available.
+
+ This error frequently occurs if you declare a variable in a loop or a `try` or `if` block and then attempt to access it from an enclosing code block or a separate code block, as shown in the following example.
+
+```cs
+using System;
+
+class MyClass1
+{
+ public static void Main()
+ {
+ try
+ {
+ // The following declaration is only available inside the try block.
+ MyClass1 conn = new MyClass1();
+ }
+ catch (Exception e)
+ {
+ // The following expression causes error CS0103, because variable
+ // conn only exists in the try block.
+ if (conn != null)
+ Console.WriteLine("{0}", e);
+ }
+ }
+}
+
+```
+
+ The following example resolves the error.
+
+```cs
+
+using System;
+
+class MyClass2
+{
+ public static void Main()
+ {
+ // To resolve the error in the example, the first step is to
+ // move the declaration of conn out of the try block. The following
+ // declaration is available throughout the Main method.
+ MyClass2 conn = null;
+ try
+ {
+ // Inside the try block, use the conn variable that you declared
+ // previously.
+ conn = new MyClass2();
+ }
+ catch (Exception e)
+ {
+ // The following expression no longer causes an error, because
+ // the declaration of conn is in scope.
+ if (conn != null)
+ Console.WriteLine("{0}", e);
+ }
+ }
+}
+
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0106.md b/docs/csharp/language-reference/compiler-messages/cs0106.md
new file mode 100644
index 0000000000000..d4afedfe2bd64
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0106.md
@@ -0,0 +1,72 @@
+---
+title: "Compiler Error CS0106 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0106"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0106"
+ms.assetid: 8dec906a-ed69-4ed5-aa61-c8600d138200
+caps.latest.revision: 16
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0106
+The modifier 'modifier' is not valid for this item
+
+ A class or interface member was marked with an invalid access modifier. The following examples describe some of these invalid modifiers:
+
+- The [static](../../../csharp/language-reference/keywords/static.md) and [public](../../../csharp/language-reference/keywords/public.md) modifiers are not permitted on interface methods.
+
+- The `public` keyword is not allowed on an explicit interface declaration. In this case, remove the `public` keyword from the explicit interface declaration.
+
+- The [abstract](../../../csharp/language-reference/keywords/abstract.md) keyword is not allowed on an explicit interface declaration because an explicit interface implementation can never be overridden.
+
+ In prior releases of Visual Studio, the `static` modifier was not permitted on a class, but `static` classes are allowed starting with [!INCLUDE[vsprvsext](../../../csharp/language-reference/compiler-messages/includes/vsprvsext_md.md)].
+
+ For more information, see [Interfaces](../../../csharp/programming-guide/interfaces/index.md)
+
+## Example
+ The following sample generates CS0106.
+
+```
+// CS0106.cs
+namespace MyNamespace
+{
+ interface I
+ {
+ void m();
+ static public void f(); // CS0106
+ }
+
+ public class MyClass
+ {
+ public void I.m() {} // CS0106
+ public static void Main() {}
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0108.md b/docs/csharp/language-reference/compiler-messages/cs0108.md
new file mode 100644
index 0000000000000..3bd9817e19042
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0108.md
@@ -0,0 +1,73 @@
+---
+title: "Compiler Warning (level 2) CS0108 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0108"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0108"
+ms.assetid: 04330ed2-80d5-4bf2-b0c1-a0c2bec03074
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 2) CS0108
+'member1' hides inherited member 'member2'. Use the new keyword if hiding was intended.
+
+ A variable was declared with the same name as a variable in a base class. However, the [new](../../../csharp/language-reference/keywords/new.md) keyword was not used. This warning informs you that you should use **new**; the variable is declared as if **new** had been used in the declaration.
+
+ The following sample generates CS0108:
+
+```
+// CS0108.cs
+// compile with: /W:2
+using System;
+
+namespace x
+{
+ public class clx
+ {
+ public int i = 1;
+ }
+
+ public class cly : clx
+ {
+ public static int i = 2; // CS0108, use the new keyword
+ // Use the following line instead:
+ // public static new int i = 2;
+
+ public static void Main()
+ {
+ Console.WriteLine(i);
+ }
+ }
+}
+```
+
+## See Also
+ [new Modifier](../../../csharp/language-reference/keywords/new-modifier.md)
+ [new](../../../csharp/language-reference/keywords/new.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0115.md b/docs/csharp/language-reference/compiler-messages/cs0115.md
new file mode 100644
index 0000000000000..45be0d9de97b8
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0115.md
@@ -0,0 +1,71 @@
+---
+title: "Compiler Error CS0115 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0115"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0115"
+ms.assetid: a0e4bd8a-a6c2-4568-8ea5-8bb1d2ad0e95
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0115
+'function' : no suitable method found to override
+
+ A method was marked as an override, but the compiler found no method to override. For more information, see [override](../../../csharp/language-reference/keywords/override.md), and [Knowing When to Use Override and New Keywords](../../../csharp/programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md).
+
+## Example
+ The following sample generates CS0115. You can resolve CS0115 in one of two ways:
+
+- Remove the `override` keyword from the method in `MyClass2`.
+
+- Use `MyClass1` as a base class for `MyClass2`.
+
+```
+// CS0115.cs
+namespace MyNamespace
+{
+ abstract public class MyClass1
+ {
+ public abstract int f();
+ }
+
+ abstract public class MyClass2
+ {
+ public override int f() // CS0115
+ {
+ return 0;
+ }
+
+ public static void Main()
+ {
+ }
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0116.md b/docs/csharp/language-reference/compiler-messages/cs0116.md
new file mode 100644
index 0000000000000..4b02e5ff619f7
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0116.md
@@ -0,0 +1,72 @@
+---
+title: "Compiler Error CS0116 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0116"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0116"
+ms.assetid: 4cb137b5-ec29-4c1a-adde-9f8424cb9496
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0116
+A namespace does not directly contain members such as fields or methods
+
+ Inside a [namespace](../../../csharp/language-reference/keywords/namespace.md), the compiler only accepts classes, structures, unions, enumerations, interfaces, and delegates. This error is often generated by developers from a C/C++ background who forget that in C#, methods and variables must be declared and defined within a struct or class. For more information, see [General Structure of a C# Program](../../../csharp/programming-guide/inside-a-program/general-structure-of-a-csharp-program.md).
+
+## Example
+ The following sample generates CS0116:
+
+```
+// CS0116.cs
+namespace x
+{
+ using System;
+
+ // method must be in class/struct
+ void Method(string str) // CS0116
+ {
+ Console.WriteLine(str);
+ }
+ // To fix the error, you must
+ // enclose a method in a class:
+ class Program
+ {
+ void Method2(string str)
+ {
+ Console.WriteLine(str);
+ }
+ }
+}
+```
+
+## See Also
+ [General Structure of a C# Program](../../../csharp/programming-guide/inside-a-program/general-structure-of-a-csharp-program.md)
+ [Classes and Structs](../../../csharp/programming-guide/classes-and-structs/index.md)
+ [Namespaces](../../../csharp/programming-guide/namespaces/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0120.md b/docs/csharp/language-reference/compiler-messages/cs0120.md
new file mode 100644
index 0000000000000..b5ed4a4ce91c5
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0120.md
@@ -0,0 +1,124 @@
+---
+title: "Compiler Error CS0120 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0120"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0120"
+ms.assetid: 3ff67f11-bdf9-436b-bc0c-4fa3cd1925a6
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0120
+An object reference is required for the nonstatic field, method, or property 'member'
+
+ In order to use a non-static field, method, or property, you must first create an object instance. For more information about static methods, see [Static Classes and Static Class Members](../../../csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members.md). For more information about creating instances of classes, see [Instance Constructors](../../../csharp/programming-guide/classes-and-structs/instance-constructors.md).
+
+ The following sample generates CS0120:
+
+```
+// CS0120_1.cs
+public class MyClass
+{
+ // Non-static field
+ public int i;
+ // Non-static method
+ public void f(){}
+ // Non-static property
+ int Prop
+ {
+ get
+ {
+ return 1;
+ }
+ }
+
+ public static void Main()
+ {
+ i = 10; // CS0120
+ f(); // CS0120
+ int p = Prop; // CS0120
+ // try the following lines instead
+ // MyClass mc = new MyClass();
+ // mc.i = 10;
+ // mc.f();
+ // int p = mc.Prop;
+ }
+}
+```
+
+ CS0120 will also be generated if there is a call to a non-static method from a static method, as follows:
+
+```
+// CS0120_2.cs
+// CS0120 expected
+using System;
+
+public class MyClass
+{
+ public static void Main()
+ {
+ TestCall(); // CS0120
+ // To call a non-static method from Main,
+ // first create an instance of the class.
+ // Use the following two lines instead:
+ // MyClass anInstanceofMyClass = new MyClass();
+ // anInstanceofMyClass.TestCall();
+ }
+
+ public void TestCall()
+ {
+ }
+}
+```
+
+ Similarly, a static method cannot call an instance method unless you explicitly give it an instance of the class, as follows:
+
+```
+// CS0120_3.cs
+using System;
+
+public class MyClass
+{
+ public static void Main()
+ {
+ do_it("Hello There"); // CS0120
+ }
+
+ private void do_it(string sText)
+ // You could also add the keyword static to the method definition:
+ // private static void do_it(string sText)
+ {
+ Console.WriteLine(sText);
+ }
+}
+```
+
+## See Also
+ [Classes and Structs](../../../csharp/programming-guide/classes-and-structs/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0122.md b/docs/csharp/language-reference/compiler-messages/cs0122.md
new file mode 100644
index 0000000000000..efc628379bf5a
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0122.md
@@ -0,0 +1,68 @@
+---
+title: "Compiler Error CS0122 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0122"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0122"
+ms.assetid: 5f639a66-c807-4166-b88a-93e5f272ceb7
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0122
+'member' is inaccessible due to its protection level
+
+ The [access modifier](../../../csharp/language-reference/keywords/modifiers.md) for a class member prevents accessing the member. For more information, see [Access Modifiers](../../../csharp/programming-guide/classes-and-structs/access-modifiers.md).
+
+ One cause of this (not shown in the sample below) can be omitting the **/out** compiler flag on the target of a friend assembly. For more information, see [Friend Assemblies](http://msdn.microsoft.com/library/df0c70ea-2c2a-4bdc-9526-df951ad2d055) and [/out (C# Compiler Options)](../../../csharp/language-reference/compiler-options/out-compiler-option.md)
+
+## Example
+ The following sample generates CS0122:
+
+```
+// CS0122.cs
+public class MyClass
+{
+ // Make public to resolve CS0122
+ void MyMethod()
+ {
+ }
+}
+
+public class MyClass2
+{
+ public static int Main()
+ {
+ MyClass a = new MyClass();
+ // MyMethod is private
+ a.MyMethod(); // CS0122
+ return 0;
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0134.md b/docs/csharp/language-reference/compiler-messages/cs0134.md
new file mode 100644
index 0000000000000..c05279c92dbc4
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0134.md
@@ -0,0 +1,61 @@
+---
+title: "Compiler Error CS0134 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0134"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0134"
+ms.assetid: c7b57de2-42ad-473e-8e45-8ac7a0caea9a
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0134
+'variable' is of type 'type'. A const field of a reference type other than string can only be initialized with null.
+
+ A constant-expression is an expression that can be fully evaluated at compile-time. Because the only way to create a non-null value of a reference-type is to apply the new operator, and because the new operator is not permitted in a constant-expression, the only possible value for constants of reference-types other than string is null.
+
+ If you encounter this error by trying to create a [const](../../../csharp/language-reference/keywords/const.md) string array, the solution is to make the array [readonly](../../../csharp/language-reference/keywords/readonly.md), and initialize it in the constructor.
+
+## Example
+ The following example generates CS0134.
+
+```
+// CS0134.cs
+// compile with: /target:library
+class MyTest {}
+
+class MyClass
+{
+ const MyTest test = new MyTest(); // CS0134
+
+ //OK
+ const MyTest test2 = null;
+ const System.String test3 = "test";
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0151.md b/docs/csharp/language-reference/compiler-messages/cs0151.md
new file mode 100644
index 0000000000000..cb4eeb47c21b4
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0151.md
@@ -0,0 +1,96 @@
+---
+title: "Compiler Error CS0151 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0151"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0151"
+ms.assetid: 1adda08b-6be5-46c8-96f9-5ac7c7bfe48c
+caps.latest.revision: 14
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0151
+A value of an integral type expected
+
+ A variable was used in a situation where an integral data type was required. For more information, see [Types](../../../csharp/programming-guide/types/index.md).
+
+## Example
+ This error can occur when there is no conversion or if the available implicit conversions result in an ambiguous situation. The following sample generates CS0151.
+
+```
+// CS0151.cs
+public class MyClass
+{
+ public static implicit operator int (MyClass aa)
+ {
+ return 0;
+ }
+
+ public static implicit operator long (MyClass aa)
+ {
+ return 0;
+ }
+
+ public static void Main()
+ {
+ MyClass a = new MyClass();
+
+ // Compiler cannot choose between int and long
+ switch (a) // CS0151
+ // try the following line instead
+ // switch ((int)a)
+ {
+ case 1:
+ break;
+ }
+ }
+}
+```
+
+## Example
+ In Visual Studio 2008 and later, a [void](../../../csharp/language-reference/keywords/void.md) method invocation generates CS0151. You can fix the error by calling a method that returns an integral type such as [int](../../../csharp/language-reference/keywords/int.md) or [long](../../../csharp/language-reference/keywords/long.md).
+
+```
+class C
+{
+ static void Main()
+ {
+
+ switch (M()) // CS0151
+ {
+ default:
+ break;
+ }
+ }
+
+ static void M()
+ {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0163.md b/docs/csharp/language-reference/compiler-messages/cs0163.md
new file mode 100644
index 0000000000000..dee3ceeca5be1
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0163.md
@@ -0,0 +1,91 @@
+---
+title: "Compiler Error CS0163 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0163"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0163"
+ms.assetid: 00139dcf-33cd-45ea-bf80-d6f26b10a5d2
+caps.latest.revision: 14
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# Compiler Error CS0163
+Control cannot fall through from one case label ('label') to another
+
+ When a [switch statement](../../../csharp/language-reference/keywords/switch.md) contains more than one switch section, you must explicitly terminate each section, including the last one, by using one of the following keywords:
+
+- [return](../../../csharp/language-reference/keywords/return.md)
+
+- [goto](../../../csharp/language-reference/keywords/goto.md)
+
+- [break](../../../csharp/language-reference/keywords/break.md)
+
+- [throw](../../../csharp/language-reference/keywords/throw.md)
+
+- [continue](../../../csharp/language-reference/keywords/continue.md)
+
+ If you want to implement "fall through" behavior from one section to the next, use `goto case #`. For more information and examples, see [switch](../../../csharp/language-reference/keywords/switch.md).
+
+ The following sample generates CS0163.
+
+```cs
+// CS0163.cs
+public class MyClass
+{
+ public static void Main()
+ {
+ int i = 0;
+
+ switch (i) // CS0163
+ {
+ // Compiler error CS0163 is reported on the following line.
+ case 1:
+ i++;
+ // To resolve the error, uncomment one of the following example statements.
+ // return;
+ // break;
+ // goto case 3;
+
+ case 2:
+ i++;
+ return;
+
+ case 3:
+ i = 0;
+ return;
+
+ // Compiler error CS0163 is reported on the following line.
+ default:
+ Console.WriteLine("Default");
+ // To resolve the error, uncomment the following line:
+ //break;
+ }
+ }
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0165.md b/docs/csharp/language-reference/compiler-messages/cs0165.md
new file mode 100644
index 0000000000000..6cf21908b95c6
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0165.md
@@ -0,0 +1,119 @@
+---
+title: "Compiler Error CS0165 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0165"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0165"
+ms.assetid: e7eb7c90-af16-4734-b747-214030696975
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0165
+Use of unassigned local variable 'name'
+
+ The C# compiler does not allow the use of uninitialized variables. If the compiler detects the use of a variable that might not have been initialized, it generates compiler error CS0165. For more information, see [Fields](../../../csharp/programming-guide/classes-and-structs/fields.md). Note that this error is generated when the compiler encounters a construct that might result in the use of an unassigned variable, even if your particular code does not. This avoids the necessity of overly-complex rules for definite assignment.
+
+ For more information, see [http://blogs.msdn.com/ericlippert/archive/2006/08/18/706398.aspx](http://blogs.msdn.com/ericlippert/archive/2006/08/18/706398.aspx).
+
+## Example
+ The following sample generates CS0165:
+
+```cs
+// CS0165.cs
+using System;
+
+class MyClass
+{
+ public int i;
+}
+
+class MyClass2
+{
+ public static void Main(string[] args)
+ {
+ // i and j are not initialized.
+ int i, j;
+
+ // You can provide a value for args[0] in the 'Command line arguments'
+ // text box on the Debug tab of the project Properties window.
+ if (args[0] == "test")
+ {
+ i = 0;
+ }
+ // If the following else clause is absent, i might not be
+ // initialized.
+ //else
+ //{
+ // i = 1;
+ //}
+
+ // Because i might not have been initialized, the following
+ // line causes CS0165.
+ j = i;
+
+ // To resolve the error, uncomment the else clause of the previous
+ // if statement, or initialize i when you declare it.
+
+ // The following example causes CS0165 because myInstance is
+ // declared but not instantiated.
+ MyClass myInstance;
+ // The following line causes the error.
+ myInstance.i = 0;
+
+ // To resolve the error, replace the previous declaration with
+ // the following line.
+ //MyClass myInstance = new MyClass();
+ }
+}
+
+```
+
+## Example
+ Compiler error CS0165 can occur in recursive delegate definitions. You can avoid the error by defining the delegate in two statements so that the variable is not used before it is initialized. The following example demonstrates the error and the resolution.
+
+```cs
+class Program
+{
+ delegate void Del();
+ static void Main(string[] args)
+ {
+ // The following line causes CS0165 because variable d is used
+ // as an argument before it has been initialized.
+ Del d = delegate() { System.Console.WriteLine(d); };
+
+ //// To resolve the error, initialize d in a separate statement.
+ //Del d = null;
+ //// After d is initialized, you can use it as an argument.
+ //d = delegate() { System.Console.WriteLine(d); };
+ //d();
+ }
+}
+
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0173.md b/docs/csharp/language-reference/compiler-messages/cs0173.md
new file mode 100644
index 0000000000000..7104c3855cd16
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0173.md
@@ -0,0 +1,104 @@
+---
+title: "Compiler Error CS0173 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0173"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0173"
+ms.assetid: eb1797ad-bf62-4e2b-8922-bef4aff36954
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0173
+Type of conditional expression cannot be determined because there is no implicit conversion between 'class1' and 'class2'
+
+ Conversions between classes are useful when you want objects of different classes to work with the same code. However, two classes that work together cannot have mutual and redundant conversions, or no implicit conversions. The types of `class1` and `class2` are determined independently, and the more general type is selected as the type of the conditional expression. For more information about how types are determined, see [Conditional operator cannot cast implicitly](http://go.microsoft.com/fwlink/?LinkId=213999).
+
+ To resolve CS0173, verify that there is one and only one implicit conversion between `class1` and `class2`, regardless of which direction the conversion is in and regardless of which class the conversion is in. For more information, see [Implicit Numeric Conversions Table](../../../csharp/language-reference/keywords/implicit-numeric-conversions-table.md) and [Conversion Operators](../../../csharp/programming-guide/statements-expressions-operators/conversion-operators.md).
+
+## Example
+ The following sample generates CS0173:
+
+```cs
+// CS0173.cs
+public class C {}
+
+public class A
+{
+ //// The following code defines an implicit conversion operator from
+ //// type C to type A.
+ //public static implicit operator A(C c)
+ //{
+ // A a = new A();
+ // a = c;
+ // return a;
+ //}
+}
+
+public class MyClass
+{
+ public static void F(bool b)
+ {
+ A a = new A();
+ C c = new C();
+
+ // The following line causes CS0173 because there is no implicit
+ // conversion from a to c or from c to a.
+ object o = b ? a : c;
+
+ // To resolve the error, you can cast a and c.
+ //object o = b ? (object)a : (object)c;
+
+ // Alternatively, you can add a conversion operator from class C to
+ // class A, or from class A to class C, but not both.
+ }
+
+ public static void Main()
+ {
+ F(true);
+ }
+}
+```
+
+## Example
+ The following code does not produce CS0173 in Visual Studio 2005, but does in later versions.
+
+```cs
+//cs0173_2.cs
+class M
+{
+ static int Main ()
+ {
+ int X = 1;
+ // The following line causes CS0173 in Visual Studio 2005.
+ object o = (X == 0) ? null : null;
+ return -1;
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0178.md b/docs/csharp/language-reference/compiler-messages/cs0178.md
new file mode 100644
index 0000000000000..535aa9009faa5
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0178.md
@@ -0,0 +1,69 @@
+---
+title: "Compiler Error CS0178 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0178"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0178"
+ms.assetid: 73e48648-6c0c-4987-92ca-fb2015a38910
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0178
+Invalid rank specifier: expected ',' or ']'
+
+ An array initialization was ill-formed. For example, when specifying the array dimensions, you can specify the following:
+
+- A number in brackets
+
+- Empty brackets
+
+- A comma enclosed in brackets
+
+ For more information, see [Arrays](../../../csharp/programming-guide/arrays/index.md) and the C# specification ([C# Language Specification](../../../csharp/language-reference/language-specification.md)) section on array initializers.
+
+## Example
+ The following sample generates CS0178.
+
+```
+// CS0178.cs
+class MyClass
+{
+ public static void Main()
+ {
+ int a = new int[5][,][][5; // CS0178
+ int[,] b = new int[3,2]; // OK
+
+ int[][] c = new int[10][];
+ c[0] = new int[5][5]; // CS0178
+ c[0] = new int[2]; // OK
+ c[1] = new int[2]{1,2}; // OK
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0188.md b/docs/csharp/language-reference/compiler-messages/cs0188.md
new file mode 100644
index 0000000000000..c7d534ffaeb97
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0188.md
@@ -0,0 +1,80 @@
+---
+title: "Compiler Error CS0188 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0188"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0188"
+ms.assetid: 4e693c18-584d-4c94-9863-283c69b97b0b
+caps.latest.revision: 17
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0188
+The 'this' object cannot be used before all of its fields are assigned to
+
+ All fields in a `struct` have to be assigned by a constructor before the constructor can call a method in the `struct`.
+
+ If you see this error when trying to initialize a property in a struct constructor, the solution is to change the constructor parameter to specify the backing field instead of the property itself. Auto-implemented properties should be avoided in structs because they have no backing field and therefore cannot be initialized in any way from the constructor.
+
+ For more information, see [Using Structs](../../../csharp/programming-guide/classes-and-structs/using-structs.md).
+
+## Example
+ The following sample generates CS0188:
+
+```
+// CS0188.cs
+// compile with: /t:library
+namespace MyNamespace
+{
+ class MyClass
+ {
+ struct S
+ {
+ public int a;
+
+ void MyMethod()
+ {
+ }
+
+ S(int i)
+ {
+ // a = i;
+ MyMethod(); // CS0188
+ }
+ }
+ public static void Main()
+ { }
+
+ }
+}
+```
+
+## See Also
+ [Structs](../../../csharp/programming-guide/classes-and-structs/structs.md)
+ [Auto-Implemented Properties](../../../csharp/programming-guide/classes-and-structs/auto-implemented-properties.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0201.md b/docs/csharp/language-reference/compiler-messages/cs0201.md
new file mode 100644
index 0000000000000..7d6b7a4499131
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0201.md
@@ -0,0 +1,84 @@
+---
+title: "Compiler Error CS0201 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0201"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0201"
+ms.assetid: cf5d6701-50cc-4e4f-878b-e1a4ad8a2061
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0201
+Only assignment, call, increment, decrement, and new object expressions can be used as a statement
+
+ The compiler generates an error when it encounters an invalid statement. An invalid statement is any line or series of lines ending in a semicolon that does not represent an assignment ([=](../../../csharp/language-reference/operators/assignment-operator.md)), method call [()](../../../csharp/language-reference/operators/invocation-operator.md), [new](../../../csharp/language-reference/keywords/new.md), [--](../../../csharp/language-reference/operators/decrement-operator.md) or [++](../../../csharp/language-reference/operators/increment-operator.md) operation. For more information, see [Statements, Expressions, and Operators](../../../csharp/programming-guide/statements-expressions-operators/index.md).
+
+## Example
+ The following sample generates CS0201 because 2 * 3 is an expression, not a statement. To make the code compile, try assigning the value of the expression to a variable.
+
+```
+// CS0201.cs
+public class MainClass
+{
+ public static void Main()
+ {
+ 2 * 3; // CS0201
+ // Try the following line instead.
+ // int i = 2 * 3;
+ }
+}
+```
+
+## Example
+ The following sample generates CS0201 because checked by itself is not a statement, even though it is parameterized by an increment operation.
+
+```
+// CS0201_b.cs
+// compile with: /target:library
+public class MyList
+{
+ public void Add(T x)
+ {
+ int i = 0;
+ if ( (object)x == null)
+ {
+ checked(i++); // CS0201
+
+ // OK
+ checked {
+ i++;
+ }
+ }
+ }
+}
+```
+
+## See Also
+ [C# Compiler Errors](../../../csharp/language-reference/compiler-messages/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0229.md b/docs/csharp/language-reference/compiler-messages/cs0229.md
new file mode 100644
index 0000000000000..ff4548532c6ee
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0229.md
@@ -0,0 +1,87 @@
+---
+title: "Compiler Error CS0229 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0229"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0229"
+ms.assetid: f1ff7e91-1243-4d36-b792-26ba69186f8f
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0229
+Ambiguity between 'member1' and 'member2'
+
+ Members of different interfaces have the same name. If you want to keep the same names, you must qualify the names. For more information, see [Interfaces](../../../csharp/programming-guide/interfaces/index.md).
+
+> [!NOTE]
+> In some cases, this ambiguity can be resolved by providing an explicit prefix to the identifier via a [using](../../../csharp/language-reference/keywords/using-directive.md) alias.
+
+## Example
+ The following example generates CS0229:
+
+```
+// CS0229.cs
+
+interface IList
+{
+ int Count
+ {
+ get;
+ set;
+ }
+
+ void Counter();
+}
+
+interface Icounter
+{
+ double Count
+ {
+ get;
+ set;
+ }
+}
+
+interface IListCounter : IList , Icounter {}
+
+class MyClass
+{
+ void Test(IListCounter x)
+ {
+ x.Count = 1; // CS0229
+ // Try one of the following lines instead:
+ // ((IList)x).Count = 1;
+ // or
+ // ((Icounter)x).Count = 1;
+ }
+
+ public static void Main() {}
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0233.md b/docs/csharp/language-reference/compiler-messages/cs0233.md
new file mode 100644
index 0000000000000..5dea09ba8632c
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0233.md
@@ -0,0 +1,67 @@
+---
+title: "Compiler Error CS0233 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0233"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0233"
+ms.assetid: 75b0123f-2237-43dc-9234-a0f727eee482
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0233
+'identifier' does not have a predefined size, therefore sizeof can only be used in an unsafe context (consider using System.Runtime.InteropServices.Marshal.SizeOf)
+
+ The [sizeof](../../../csharp/language-reference/keywords/sizeof.md) operator can only be used for types that are compile-time constants. If you are getting this error, make sure that the size of the identifier can be determined at compile time. If it cannot, then use instead of `sizeof`.
+
+## Example
+ The following example generates CS0233:
+
+```
+// CS0233.cs
+using System;
+using System.Runtime.InteropServices;
+
+[StructLayout(LayoutKind.Sequential)]
+public struct S
+{
+ public int a;
+}
+
+public class MyClass
+{
+ public static void Main()
+ {
+ S myS = new S();
+ Console.WriteLine(sizeof(S)); // CS0233
+ // Try the following line instead:
+ // Console.WriteLine(Marshal.SizeOf(myS));
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0234.md b/docs/csharp/language-reference/compiler-messages/cs0234.md
new file mode 100644
index 0000000000000..5b7cc3dbc37a7
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0234.md
@@ -0,0 +1,64 @@
+---
+title: "Compiler Error CS0234 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0234"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0234"
+ms.assetid: 413774cc-b63e-472b-8fe7-cf23ca970a5f
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0234
+The type or namespace name 'name' does not exist in the namespace 'namespace' (are you missing an assembly reference?)
+
+ A type was expected. Possible causes for this error include the following:
+
+- An assembly that contains the definition of a type was not referenced in the compilation; use [/reference (Import Metadata)](../../../csharp/language-reference/compiler-options/reference-compiler-option.md) to specify the assembly
+
+- You passed a variable name to the [typeof](../../../csharp/language-reference/keywords/typeof.md) operator.
+
+- You tried to reference an assembly that is not part of your target .NET Framework profile. For more information, see [Troubleshooting .NET Framework Targeting Errors](/visualstudio/msbuild/troubleshooting-dotnet-framework-targeting-errors).
+
+ If you see this error after moving code from one development machine to another, make sure that the project on the new machine has the correct references, and that the versions of the assemblies are the same as on the old machine. You can also use the Object Browser to inspect an assembly and verify whether it contains the types that you expect it to contain.
+
+ The following sample generates CS0234:
+
+```
+// CS0234.cs
+public class C
+{
+ public static void Main()
+ {
+ System.DateTime x = new System.DateTim(); // CS0234
+ // try the following line instead
+ // System.DateTime x = new System.DateTime();
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0246.md b/docs/csharp/language-reference/compiler-messages/cs0246.md
new file mode 100644
index 0000000000000..8db9e610147e8
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0246.md
@@ -0,0 +1,124 @@
+---
+title: "Compiler Error CS0246 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0246"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0246"
+ms.assetid: 4948fae2-2cc0-4ce4-b98c-ea69a8120b71
+caps.latest.revision: 17
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# Compiler Error CS0246
+The type or namespace name 'type/namespace' could not be found (are you missing a using directive or an assembly reference?)
+
+ A type or namespace that is used in the program was not found. You might have forgotten to reference ([/reference](../../../csharp/language-reference/compiler-options/reference-compiler-option.md)) the assembly that contains the type, or you might not have added the required [using directive](../../../csharp/language-reference/keywords/using-directive.md). Or, there might be an issue with the assembly you are trying to reference.
+
+ The following situations cause compiler error CS0246.
+
+- Did you misspell the name of the type or namespace? Without the correct name, the compiler cannot find the definition for the type or namespace. This often occurs because the casing used in the name of the type is not correct. For example, `Dataset ds;` generates CS0246 because the s in Dataset must be capitalized.
+
+- If the error is for a namespace name, did you add a reference ([/reference](../../../csharp/language-reference/compiler-options/reference-compiler-option.md)) to the assembly that contains the namespace? For example, your code might contain the directive `using Accessibility`. However, if your project does not reference the assembly Accessibility.dll, error CS0246 is reported. For more information, see [Managing references in a project](/visualstudio/ide/managing-references-in-a-project)
+
+- If the error is for a type name, did you include the proper [using](../../../csharp/language-reference/keywords/using.md) directive, or, alternatively, fully qualify the name of the type? Consider the following declaration: `DataSet ds`. To use the `DataSet` type, you need two things. First, you need a reference to the assembly that contains the definition for the `DataSet` type. Second, you need a `using` directive for the namespace where `DataSet` is located. For example, because `DataSet` is located in the **System.Data** namespace, you need the following directive at the beginning of your code: `using System.Data`.
+
+ The `using` directive is not required. However, if you omit the directive, you must fully qualify the `DataSet` type when referring to it. Full qualification means that you specify both the namespace and the type each time you refer to the type in your code. If you omit the `using` directive in the previous example, you must write `System.Data.DataSet ds` to declare `ds` instead of `DataSet ds`.
+
+- Did you use a variable or some other language element where a type was expected? For example, in an **is** statement, if you use a `Type` object instead of an actual type, you get error CS0246.
+
+- Did you use a *using alias directive* without fully qualifying the type name? A `using` alias directive does not use the `using` directives in the source code file to resolve types. The following example generates CS0246 because the type `List` is not fully qualified. The `using` directive for `System.Collections.Generic` does not prevent the error.
+
+ ```cs
+ using System.Collections.Generic;
+
+ // The following declaration generates CS0246.
+ using myAliasName = List;
+
+ // To avoid the error, fully qualify List.
+ using myAliasName2 = System.Collections.Generic.List;
+
+ ```
+
+ If you get this error in code that was previously working, first look for missing or unresolved references in Solution Explorer. Do you need to re-install a [NuGet](https://www.nuget.org/)package? For information about how the build system searches for references, see [Resolving file references in team build](http://blogs.msdn.com/b/manishagarwal/archive/2005/09/28/474769.aspx). If all references seem to be correct, look in your source control history to see what has changed in your .csproj file and/or your local source file.
+
+ If you haven’t successfully accessed the reference yet, use the Object Browser to inspect the assembly that is supposed to contain this namespace and verify that the namespace is present. If you verify with Object Browser that the assembly contains the namespace, try removing the “using” directive for the namespace and see what else breaks. The root problem may be with some other type in another assembly.
+
+ The following example generates CS0246 because a necessary `using` directive is missing.
+
+```cs
+// CS0246.cs
+//using System.Diagnostics;
+
+public class MyClass
+{
+ // The following line causes CS0246. To fix the error, uncomment
+ // the using directive for the namespace for this attribute,
+ // System.Diagnostics.
+ [Conditional("A")]
+ public void Test()
+ {
+ }
+
+ public static void Main()
+ {
+ }
+}
+```
+
+ The following example causes CS0246 because an object of type `Type` was used where an actual type was expected.
+
+```cs
+// CS0246b.cs
+using System;
+
+class ExampleClass
+{
+ public bool supports(object o, Type t)
+ {
+ // The following line causes CS0246. You must use an
+ // actual type, such as ExampleClass, String, or Type.
+ if (o is t)
+ {
+ return true;
+ }
+ return false;
+ }
+}
+
+class Program
+{
+ public static void Main()
+ {
+ ExampleClass myC = new ExampleClass();
+ myC.supports(myC, myC.GetType());
+ }
+}
+
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0260.md b/docs/csharp/language-reference/compiler-messages/cs0260.md
new file mode 100644
index 0000000000000..6c25e07fa8627
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0260.md
@@ -0,0 +1,64 @@
+---
+title: "Compiler Error CS0260 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0260"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0260"
+ms.assetid: 58e091da-e093-4093-86df-dcd24ffab750
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0260
+Missing partial modifier on declaration of type 'type'; another partial declaration of this type exists
+
+ This error indicates that you have declared multiple classes that have the same name. In addition, at least one but not all of the declarations contains the `partial` modifier. If you want to define a class in several parts, you must declare each part by using the keyword `partial`.
+
+ This error also occurs if you declare a class and accidentally give it the same name as a partial class that's declared elsewhere in the same namespace.
+
+ The following sample generates CS0260:
+
+```cs
+// CS0260.cs
+// You must mark both parts of the definition of class C
+// by using the partial keyword.
+
+// The following line causes CS0260. To resolve the error, add
+// the 'partial' keyword to the declaration.
+class C
+{
+}
+
+partial class C
+{
+}
+```
+
+## See Also
+ [Partial Classes and Methods](../../../csharp/programming-guide/classes-and-structs/partial-classes-and-methods.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0266.md b/docs/csharp/language-reference/compiler-messages/cs0266.md
new file mode 100644
index 0000000000000..1e9a82ec9fc28
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0266.md
@@ -0,0 +1,85 @@
+---
+title: "Compiler Error CS0266 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0266"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0266"
+ms.assetid: 6cca5d6a-f3e0-482a-af25-af73bfe3e303
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0266
+Cannot implicitly convert type 'type1' to 'type2'. An explicit conversion exists (are you missing a cast?)
+
+ This error occurs when your code tries to convert between two types that cannot be implicitly converted, but where an explicit conversion is available. For more information, see [Casting and Type Conversions](../../../csharp/programming-guide/types/casting-and-type-conversions.md).
+
+ The following code shows examples that generate CS0266.
+
+```cs
+// CS0266.cs
+class MyClass
+{
+ public static void Main()
+ {
+ // You cannot implicitly convert a double to an integer.
+ double d = 3.2;
+
+ // The following line causes compiler error CS0266.
+ int i1 = d;
+
+ // However, you can resolve the error by using an explicit conversion.
+ int i2 = (int)d;
+
+ // You cannot implicitly convert an object to a class type.
+ object obj = "MyString";
+
+ // The following assignment statement causes error CS0266.
+ MyClass myClass = obj;
+
+ // You can resolve the error by using an explicit conversion.
+ MyClass c = ( MyClass )obj;
+
+ // You cannot implicitly convert a base class object to a derived class type.
+ MyClass mc = new MyClass();
+ DerivedClass dc = new DerivedClass();
+
+ // The following line causes compiler error CS0266.
+ dc = mc;
+
+ // You can resolve the error by using an explicit conversion.
+ dc = (DerivedClass)mc;
+ }
+}
+
+class DerivedClass : MyClass
+{
+}
+
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0269.md b/docs/csharp/language-reference/compiler-messages/cs0269.md
new file mode 100644
index 0000000000000..172ffe946a09e
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0269.md
@@ -0,0 +1,102 @@
+---
+title: "Compiler Error CS0269 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0269"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0269"
+ms.assetid: 7ef8374c-6f82-4096-bf4b-70080d4ddf88
+caps.latest.revision: 14
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0269
+Use of unassigned out parameter 'parameter'
+
+ The compiler could not verify that the out parameter was assigned a value before it was used; its value may be undefined when assigned. Be sure to assign a value to `out` parameters in the called method before accessing the value. If you need to use the value of the variable passed in, use a `ref` parameter instead. For more information, see [Passing Parameters](../../../csharp/programming-guide/classes-and-structs/passing-parameters.md).
+
+## Example
+ The following sample generates CS0269:
+
+```cs
+// CS0269.cs
+class C
+{
+ public static void F(out int i)
+ // One way to resolve the error is to use a ref parameter instead
+ // of an out parameter.
+ //public static void F(ref int i)
+ {
+ // The following line causes a compiler error because no value
+ // has been assigned to i.
+ int k = i; // CS0269
+ i = 1;
+ // The error does not occur if the order of the two previous
+ // lines is reversed.
+ }
+
+ public static void Main()
+ {
+ int myInt = 1;
+ F(out myInt);
+ // If the declaration of method F is changed to require a ref
+ // parameter, ref must be specified in the call as well.
+ //F(ref myInt);
+ }
+}
+```
+
+## Example
+ This could also occur if the initialization of a variable occurs in a try block, which the compiler is unable to verify will execute successfully:
+
+```cs
+// CS0269b.cs
+class C
+{
+ public static void F(out int i)
+ {
+ try
+ {
+ // Assignment occurs, but compiler can't verify it
+ i = 1;
+ }
+ catch
+ {
+ }
+
+ int k = i; // CS0269
+ i = 1;
+ }
+
+ public static void Main()
+ {
+ int myInt;
+ F(out myInt);
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0270.md b/docs/csharp/language-reference/compiler-messages/cs0270.md
new file mode 100644
index 0000000000000..0f2f8b2d27eaa
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0270.md
@@ -0,0 +1,55 @@
+---
+title: "Compiler Error CS0270 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0270"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0270"
+ms.assetid: ce3eaf5f-5c49-4608-a172-d92c515cab50
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0270
+Array size cannot be specified in a variable declaration (try initializing with a 'new' expression)
+
+ This error occurs when a size is specified as part of an array declaration. To resolve, use the [new Operator](../../../csharp/language-reference/keywords/new-operator.md) expression.
+
+ The following example generates CS0270:
+
+```
+// CS0270.cs
+// compile with: /t:module
+
+public class Test
+{
+ int[10] a; // CS0270
+ // To resolve, use the following line instead:
+ // int[] a = new int[10];
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0304.md b/docs/csharp/language-reference/compiler-messages/cs0304.md
new file mode 100644
index 0000000000000..82243d38ee7fb
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0304.md
@@ -0,0 +1,97 @@
+---
+title: "Compiler Error CS0304 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0304"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0304"
+ms.assetid: 22dc7211-57a8-4c92-96f6-fc1cf0263b68
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0304
+Cannot create an instance of the variable type 'type' because it does not have the new() constraint
+
+ When you implement a generic class, and you want to use the `new` keyword to create a new instance of any type that is supplied for a type parameter `T`, you must apply the [new() constraint](../../../csharp/language-reference/keywords/new.md) to `T` in the class declaration, as shown in the following example.
+
+```cs
+class C where T : new()
+```
+
+ The `new()` constraint enforces type safety by guaranteeing that any concrete type that is supplied for `T` has a default, parameterless constructor. CS0304 occurs if you attempt to use the `new` operator in the body of the class to create an instance of type parameter `T` when `T` does not specify the `new()` constraint. On the client side, if code attempts to instantiate the generic class with a type that has no default constructor, that code will generate [Compiler Error CS0310](../../../csharp/language-reference/compiler-messages/cs0310.md).
+
+ The following example generates CS0304.
+
+```cs
+
+// CS0304.cs
+// Compile with: /target:library.
+class C
+{
+ // The following line generates CS0304.
+ T t = new T();
+}
+
+```
+
+ The `new` operator also is not allowed in methods of the class.
+
+```cs
+
+// Compile with: /target:library.
+class C
+{
+ public void ExampleMethod()
+ {
+ // The following line generates CS0304.
+ T t = new T();
+ }
+}
+
+```
+
+ To avoid the error, declare the class by using the `new()` constraint, as shown in the following example.
+
+```cs
+
+// Compile with: /target:library.
+class C where T : new()
+{
+ T t = new T();
+
+ public void ExampleMethod()
+ {
+ T t = new T();
+ }
+}
+
+```
+
+## See Also
+ [C# Compiler Errors](../../../csharp/language-reference/compiler-messages/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0310.md b/docs/csharp/language-reference/compiler-messages/cs0310.md
new file mode 100644
index 0000000000000..bce0e79a0de59
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0310.md
@@ -0,0 +1,76 @@
+---
+title: "Compiler Error CS0310 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0310"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0310"
+ms.assetid: f7db7e56-f51f-406f-a54b-48ea61b5cb3e
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0310
+The type 'typename' must be a non-abstract type with a public parameterless constructor in order to use it as parameter 'parameter' in the generic type or method 'generic'
+
+ The generic type or method defines a new constraint in its where clause, so any type must have a public parameterless constructor in order to be used as a type argument for that generic type or method. To avoid this error, make sure that the type has the correct constructor, or modify the constraint clause of the generic type or method.
+
+## Example
+ The following sample generates CS0310:
+
+```
+// CS0310.cs
+using System;
+
+class G where T : new()
+{
+ T t;
+
+ public G()
+ {
+ t = new T();
+ Console.WriteLine(t);
+ }
+}
+
+class B
+{
+ private B() { }
+ // Try this instead:
+ // public B() { }
+}
+
+class CMain
+{
+ public static void Main()
+ {
+ G g = new G(); // CS0310
+ Console.WriteLine(g.ToString());
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0311.md b/docs/csharp/language-reference/compiler-messages/cs0311.md
new file mode 100644
index 0000000000000..77921126d66a8
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0311.md
@@ -0,0 +1,70 @@
+---
+title: "Compiler Error CS0311 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0311"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0311"
+ms.assetid: d095f0fa-efd7-491c-a80b-4c5704a90de7
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0311
+The type 'type1' cannot be used as type parameter 'T' in the generic type or method '\'. There is no implicit reference conversion from 'type1' to 'type2'.
+
+ When a constraint is applied to a generic type parameter, an implicit identity or reference conversion must exist from the concrete argument to the type of the constraint.
+
+## To correct this error
+
+1. Change the argument you are using to create the class.
+
+2. If you own the class, you can remove the constraint or else do something to enable an implicit reference or identity conversion. For example, you can make the second type inherit from the first.
+
+## Example
+
+```
+// cs0311.cs
+class B{}
+class C{}
+class Test where T : C
+{ }
+
+class Program
+{
+ static void Main()
+ {
+ Test test = new Test(); //CS0311
+ }
+}
+```
+
+ If this error occurs when trying to use a value-type argument, notice that an implicit numeric conversion, for example from `short` to `int`, does not satisfy a generic type parameter.
+
+## See Also
+ [Constraints on Type Parameters](../../../csharp/programming-guide/generics/constraints-on-type-parameters.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0413.md b/docs/csharp/language-reference/compiler-messages/cs0413.md
new file mode 100644
index 0000000000000..b18406880846d
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0413.md
@@ -0,0 +1,71 @@
+---
+title: "Compiler Error CS0413 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0413"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0413"
+ms.assetid: a01bd1ec-015b-433b-be55-b91db268d6a5
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# Compiler Error CS0413
+The type parameter 'type parameter' cannot be used with the 'as' operator because it does not have a class type constraint nor a 'class' constraint
+
+ This error occurs if a generic type uses the [as](../../../csharp/language-reference/keywords/as.md) operator, but that generic type does not have a class type constraint. The `as` operator is only allowed with reference types, so the type parameter must be constrained to guarantee that it is not a value type. To avoid this error, use a class type constraint or a reference type constraint.
+
+ This is because the `as` operator could return `null`, which is not a possible value for a value type, and the type parameter must be treated as a value type unless it is a class type constraint or a reference type constraint.
+
+## Example
+ The following sample generates CS0413.
+
+```
+// CS0413.cs
+// compile with: /target:library
+class A {}
+class B : A {}
+
+class CMain
+{
+ A a = null;
+ public void G()
+ {
+ a = new A();
+ System.Console.WriteLine (a as T); // CS0413
+ }
+
+ // OK
+ public void H() where T : A
+ {
+ a = new A();
+ System.Console.WriteLine (a as T);
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0417.md b/docs/csharp/language-reference/compiler-messages/cs0417.md
new file mode 100644
index 0000000000000..52f1c8db51852
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0417.md
@@ -0,0 +1,60 @@
+---
+title: "Compiler Error CS0417 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0417"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0417"
+ms.assetid: e2a617da-f0b2-4bad-aefa-3dd3bc1fb24b
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0417
+'identifier': cannot provide arguments when creating an instance of a variable type
+
+ This error occurs if a call to the `new` operator on a type parameter has arguments. The only constructor that can be called by using the `new` operator on an unknown parameter type is a constructor that has no arguments. If you need to call another constructor, consider using a class type constraint or interface constraint.
+
+## Example
+ The following example generates CS0417:
+
+```cs
+// CS0417
+class ExampleClass where T : new()
+{
+ // The following line causes CS0417.
+ T instance1 = new T(1);
+
+ // The following line doesn't cause the error.
+ T instance2 = new T();
+}
+
+```
+
+## See Also
+ [Constraints on Type Parameters](../../../csharp/programming-guide/generics/constraints-on-type-parameters.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0420.md b/docs/csharp/language-reference/compiler-messages/cs0420.md
new file mode 100644
index 0000000000000..9d7f0082a748d
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0420.md
@@ -0,0 +1,64 @@
+---
+title: "Compiler Warning (level 1) CS0420 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0420"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0420"
+ms.assetid: 0f52f508-286e-493d-9151-180e05397bf9
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS0420
+'identifier': a reference to a volatile field will not be treated as volatile
+
+ A volatile field should not normally be passed using a `ref` or **out** parameter, since it will not be treated as volatile within the scope of the function. There are exceptions to this, such as when calling an interlocked API. As with any warning, you may use the [#pragma warning](../../../csharp/language-reference/preprocessor-directives/preprocessor-pragma-warning.md) to disable this warning in those rare cases where you are intentionally using a volatile field as a reference parameter.
+
+ The following sample generates CS0420:
+
+```
+// CS0420.cs
+// compile with: /W:1
+using System;
+
+class TestClass
+{
+ private volatile int i;
+
+ public void TestVolatile(ref int ii)
+ {
+ }
+
+ public static void Main()
+ {
+ TestClass x = new TestClass();
+ x.TestVolatile(ref x.i); // CS0420
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0429.md b/docs/csharp/language-reference/compiler-messages/cs0429.md
new file mode 100644
index 0000000000000..5ab98a86f7364
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0429.md
@@ -0,0 +1,66 @@
+---
+title: "Compiler Warning (level 4) CS0429 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0429"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0429"
+ms.assetid: 906442de-9760-4e28-aea1-c94f0af918fb
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 4) CS0429
+Unreachable expression code detected
+
+ This error occurs whenever part of an expression in your code is unreachable. In the following example, the condition `false && myTest()` meets this criteria because the `myTest()` method will never get evaluated due to the fact that the left side of the `&&` operation is always false. As soon as the `&&` operator evaluates the `false` statement as false, it stops the evaluation, and will never evaluate the right side.
+
+## Example
+ The following code generates CS0429.
+
+```
+// CS0429.cs
+public class cs0429
+{
+ public static void Main()
+ {
+ if (false && myTest()) // CS0429
+ // Try the following line instead:
+ // if (true && myTest())
+ {
+ }
+ else
+ {
+ int i = 0;
+ i++;
+ }
+ }
+
+ static bool myTest() { return true; }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0433.md b/docs/csharp/language-reference/compiler-messages/cs0433.md
new file mode 100644
index 0000000000000..a11742e316523
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0433.md
@@ -0,0 +1,99 @@
+---
+title: "Compiler Error CS0433 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0433"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0433"
+ms.assetid: efec174a-faa1-4b88-860b-7d9db9c82a02
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0433
+The type TypeName1 exists in both TypeName2 and TypeName3
+
+ Two different assemblies referenced in your application contain the same namespace and type, which produces ambiguity.
+
+ To resolve this error, use the alias feature of the [/reference (C# Compiler Options)](../../../csharp/language-reference/compiler-options/reference-compiler-option.md) compiler option or do not reference one of your assemblies.
+
+## Example
+ This code creates the DLL with the first copy of the ambiguous type.
+
+```
+// CS0433_1.cs
+// compile with: /target:library
+namespace TypeBindConflicts
+{
+ public class AggPubImpAggPubImp {}
+}
+```
+
+## Example
+ This code creates the DLL with the second copy of the ambiguous type.
+
+```
+// CS0433_2.cs
+// compile with: /target:library
+namespace TypeBindConflicts
+{
+ public class AggPubImpAggPubImp {}
+}
+```
+
+## Example
+ The following example generates CS0433.
+
+```
+// CS0433_3.cs
+// compile with: /reference:cs0433_1.dll /reference:cs0433_2.dll
+using TypeBindConflicts;
+public class Test
+{
+ public static void Main()
+ {
+ AggPubImpAggPubImp n6 = new AggPubImpAggPubImp(); // CS0433
+ }
+}
+```
+
+## Example
+ The following example shows how you can use the alias feature of the **/reference** compiler option to resolve this CS0433 error.
+
+```
+// CS0433_4.cs
+// compile with: /reference:cs0433_1.dll /reference:TypeBindConflicts=cs0433_2.dll
+using TypeBindConflicts;
+public class Test
+{
+ public static void Main()
+ {
+ AggPubImpAggPubImp n6 = new AggPubImpAggPubImp();
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0445.md b/docs/csharp/language-reference/compiler-messages/cs0445.md
new file mode 100644
index 0000000000000..9621862afc1da
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0445.md
@@ -0,0 +1,75 @@
+---
+title: "Compiler Error CS0445 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0445"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0445"
+ms.assetid: 43f3e5c5-115c-4a34-b0f3-1b7623c49d64
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0445
+Cannot modify the result of an unboxing conversion
+
+ The result of an unboxing conversion is a temporary variable. The compiler prevents you from modifying such variables because any modification would go away when the temporary variable goes away. To fix this, declare a new value-type variable to store the intermediate expression, and assign the result of the unboxing conversion to that variable.
+
+ The following code generates CS0455.
+
+```cs
+
+// CS0445.CS
+class UnboxingTest
+{
+ public static void Main()
+ {
+ Point p;
+ p.x = 1;
+ p.y = 2;
+ object obj = p;
+ // The following line generates CS0445, because the result
+ // of unboxing obj is a temporary variable.
+ ((Point)obj).x = 2;
+
+ // The following lines resolve the error.
+
+ // Store the result of the unboxing conversion in p2.
+ Point p2;
+ p2 = (Point)obj;
+ // Then you can modify the unboxed value.
+ p2.x = 2;
+ }
+}
+
+struct Point
+{
+ public int x, y;
+}
+
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0446.md b/docs/csharp/language-reference/compiler-messages/cs0446.md
new file mode 100644
index 0000000000000..784ab5f71dc1f
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0446.md
@@ -0,0 +1,58 @@
+---
+title: "Compiler Error CS0446 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0446"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0446"
+ms.assetid: d7a07e24-722e-484d-b6d7-ca809b51858f
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0446
+Foreach cannot operate on a 'Method or Delegate'. Did you intend to invoke the 'Method or Delegate'?
+
+ This error is caused by specifying a method without parentheses or an anonymous method without parentheses in the part of the `foreach` statement where you would normally put a collection class. Note that it is valid, though unusual, to put a method call in that location, if the method returns a collection class.
+
+## Example
+ The following code will generate CS0446.
+
+```
+// CS0446.cs
+using System;
+class Tester
+{
+ static void Main()
+ {
+ int[] intArray = new int[5];
+ foreach (int i in M) { } // CS0446
+ }
+ static void M() { }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0465.md b/docs/csharp/language-reference/compiler-messages/cs0465.md
new file mode 100644
index 0000000000000..d8fdfd627030a
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0465.md
@@ -0,0 +1,61 @@
+---
+title: "Compiler Warning (level 1) CS0465 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0465"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0465"
+ms.assetid: 3d36faae-147f-4173-b164-af953fd86eea
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS0465
+Introducing a 'Finalize' method can interfere with destructor invocation. Did you intend to declare a destructor?
+
+ This warning occurs when you create a class with a method whose signature is `public virtual void Finalize`.
+
+ If such a class is used as a base class and if the deriving class defines a destructor, the destructor will override the base class `Finalize` method, not .
+
+## Example
+ The following sample generates CS0465.
+
+```
+// CS0465.cs
+// compile with: /target:library
+class A
+{
+ public virtual void Finalize() {} // CS0465
+}
+
+// OK
+class B
+{
+ ~B() {}
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0467.md b/docs/csharp/language-reference/compiler-messages/cs0467.md
new file mode 100644
index 0000000000000..fd12e103d09b9
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0467.md
@@ -0,0 +1,81 @@
+---
+title: "Compiler Warning (level 2) CS0467 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0467"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0467"
+ms.assetid: ae082998-afd6-4f82-9c87-6b429ba8fd57
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# Compiler Warning (level 2) CS0467
+Ambiguity between method 'method' and non-method 'non-method'.Using method group.
+
+ Inherited members from different interfaces that have the same signature cause an ambiguity error.
+
+## Example
+ The following example generates CS0467.
+
+```cs
+// CS0467.cs
+interface IList
+{
+ int Count { get; set; }
+}
+
+interface ICounter
+{
+ void Count(int i);
+}
+
+interface IListCounter : IList, ICounter {}
+
+class Driver
+{
+ void Test(IListCounter x)
+ {
+ // The following line causes the warning. The assignment also
+ // causes an error because you can't assign a value to a method.
+ x.Count = 1;
+ x.Count(3);
+ // To resolve the warning, you can change the name of the method or
+ // the property.
+
+ // You also can disambiguate by specifying IList or ICounter.
+ ((IList)x).Count = 1;
+ ((ICounter)x).Count(3);
+ }
+
+ static void Main()
+ {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0504.md b/docs/csharp/language-reference/compiler-messages/cs0504.md
new file mode 100644
index 0000000000000..9b0ac4ed7249c
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0504.md
@@ -0,0 +1,55 @@
+---
+title: "Compiler Error CS0504 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0504"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0504"
+ms.assetid: f2486ffd-aa85-4b40-a89c-a32530b85d1f
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0504
+The constant 'variable' cannot be marked static
+
+ If a variable is [const](../../../csharp/language-reference/keywords/const.md), it is also [static](../../../csharp/language-reference/keywords/static.md). If you want a **const** and **static** variable, just declare that variable as **const**; if all you want is a **static** variable, just mark it **static**.
+
+ The following sample generates CS0504:
+
+```
+// CS0504.cs
+namespace x
+{
+ abstract public class clx
+ {
+ static const int i = 0; // CS0504, cannot be both static and const
+ abstract public void f();
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0507.md b/docs/csharp/language-reference/compiler-messages/cs0507.md
new file mode 100644
index 0000000000000..3fa0f04d8051f
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0507.md
@@ -0,0 +1,86 @@
+---
+title: "Compiler Error CS0507 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0507"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0507"
+ms.assetid: ddbdb94c-38c3-4022-8d1c-68971d398b87
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0507
+'function1' : cannot change access modifiers when overriding 'access' inherited member 'function2'
+
+ An attempt was made to change the access specification in a method override.
+
+## Example
+ The following sample generates CS0507.
+
+```
+// CS0507.cs
+abstract public class clx
+{
+ virtual protected void f() {}
+}
+
+public class cly : clx
+{
+ public override void f() {} // CS0507
+ public static void Main() {}
+}
+```
+
+## Example
+ CS0507 can also occur if a class attempts to override a method marked as `protected internal` defined in referenced metadata. In this situation, the overriding method should be marked as `protected`.
+
+```
+// CS0507_b.cs
+// compile with: /target:library
+abstract public class clx
+{
+ virtual protected internal void f() {}
+}
+```
+
+## Example
+ The following sample generates CS0507.
+
+```
+// CS0507_c.cs
+// compile with: /reference:cs0507_b.dll
+public class cly : clx
+{
+ protected internal override void f() {} // CS0507
+ // try the following line instead
+ // protected override void f() {} // OK
+
+ public static void Main() {}
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0518.md b/docs/csharp/language-reference/compiler-messages/cs0518.md
new file mode 100644
index 0000000000000..585f4235059d0
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0518.md
@@ -0,0 +1,57 @@
+---
+title: "Compiler Error CS0518 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0518"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0518"
+ms.assetid: b0b61cbb-c9a7-48c9-9e60-7cdd5ecb3e6c
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0518
+Predefined type 'type' is not defined or imported
+
+ The main cause for this problem is that the project is not importing mscorlib.dll, which defines the entire System namespace. This can be caused by one of the following:
+
+- The [/nostdlib](../../../csharp/language-reference/compiler-options/nostdlib-compiler-option.md) option from the command line compiler has been specified. The /nostdlib option prevents the import of mscorlib.dll. Use this option if you want to define or create a user-specific System namespace.
+
+- An incorrect mscorlib.dll is referenced.
+
+- A corrupt Visual Studio .NET or .NET Framework common language runtime installation exists.
+
+- Residual components from an earlier installation that are incompatible with the latest installation remain.
+
+ To resolve this problem, take one of the following actions:
+
+- Do not specify the /nostdlib option from the command line compiler.
+
+- Make sure that the project refers to the correct mscorlib.dll.
+
+- Reinstall the .NET Framework common language runtime (if the previous solutions do not solve the problem).
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0523.md b/docs/csharp/language-reference/compiler-messages/cs0523.md
new file mode 100644
index 0000000000000..a66ce6aa377e3
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0523.md
@@ -0,0 +1,57 @@
+---
+title: "Compiler Error CS0523 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0523"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0523"
+ms.assetid: f91fb0ab-e1ef-4d6d-a3ef-5adc53a7e312
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0523
+Struct member 'struct2 field' of type 'struct1' causes a cycle in the struct layout
+
+ The definitions of two structs include recursive references. Change the [struct](../../../csharp/language-reference/keywords/struct.md) definitions such that each does not define itself on the other. This limitation applies only to structs, since structs are value types. If using recursive references, declare your types as classes.
+
+ The following sample generates CS0523:
+
+```
+// CS0523.cs
+// compile with: /target:library
+struct RecursiveLayoutStruct1
+{
+ public RecursiveLayoutStruct2 field;
+}
+
+struct RecursiveLayoutStruct2
+{
+ public RecursiveLayoutStruct1 field; // CS0523
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0545.md b/docs/csharp/language-reference/compiler-messages/cs0545.md
new file mode 100644
index 0000000000000..3183d7d1c1d6c
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0545.md
@@ -0,0 +1,79 @@
+---
+title: "Compiler Error CS0545 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0545"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0545"
+ms.assetid: f8c50376-76c4-46ac-9ee1-76cc58005cea
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0545
+'function' : cannot override because 'property' does not have an overridable get accessor
+
+ A try was made to define an override for a property accessor when the base class has no such definition to override. You can resolve this error by:
+
+- Adding a `set` accessor in the base class.
+
+- Removing the `set` accessor from the derived class.
+
+- Hiding the base class property by adding the [new](../../../csharp/language-reference/keywords/new.md) keyword to a property in a derived class.
+
+- Making the base class property [virtual](../../../csharp/language-reference/keywords/virtual.md).
+
+ For more information, see [Using Properties](../../../csharp/programming-guide/classes-and-structs/using-properties.md).
+
+## Example
+ The following sample generates CS0545.
+
+```
+// CS0545.cs
+// compile with: /target:library
+// CS0545
+public class a
+{
+ public virtual int i
+ {
+ set {}
+
+ // Uncomment the following line to resolve.
+ // get { return 0; }
+ }
+}
+
+public class b : a
+{
+ public override int i
+ {
+ get { return 0; }
+ set {} // OK
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0552.md b/docs/csharp/language-reference/compiler-messages/cs0552.md
new file mode 100644
index 0000000000000..04f872308f3f1
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0552.md
@@ -0,0 +1,63 @@
+---
+title: "Compiler Error CS0552 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0552"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0552"
+ms.assetid: ce5cfb26-8406-4ca0-adb7-55d1d03d8145
+caps.latest.revision: 6
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0552
+'conversion routine' : user defined conversion to/from interface
+
+ You cannot create a user-defined conversion to or from an interface. If you need the conversion routine, resolve this error by making the interface a class or derive a class from the interface.
+
+ The following sample generates CS0552:
+
+```
+// CS0552.cs
+public interface ii
+{
+}
+
+public class a
+{
+ // delete the routine to resolve CS0552
+ public static implicit operator ii(a aa) // CS0552
+ {
+ return new ii();
+ }
+
+ public static void Main()
+ {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0563.md b/docs/csharp/language-reference/compiler-messages/cs0563.md
new file mode 100644
index 0000000000000..f28f300c8d646
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0563.md
@@ -0,0 +1,68 @@
+---
+title: "Compiler Error CS0563 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0563"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0563"
+ms.assetid: c1561e4e-7f00-41ff-abff-b8228aee66a4
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0563
+One of the parameters of a binary operator must be the containing type
+
+ The method declaration for an [operator overload](../../../csharp/programming-guide/statements-expressions-operators/overloadable-operators.md) must follow certain guidelines.
+
+## Example
+ The following sample generates CS0563:
+
+```
+// CS0563.cs
+public class iii
+{
+ public static implicit operator int(iii x)
+ {
+ return 0;
+ }
+ public static implicit operator iii(int x)
+ {
+ return null;
+ }
+ public static int operator +(int aa, int bb) // CS0563
+ // Use the following line instead:
+ // public static int operator +(int aa, iii bb)
+ {
+ return 0;
+ }
+ public static void Main()
+ {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0570.md b/docs/csharp/language-reference/compiler-messages/cs0570.md
new file mode 100644
index 0000000000000..e5be5ae949f41
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0570.md
@@ -0,0 +1,88 @@
+---
+title: "Compiler Error CS0570 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0570"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0570"
+ms.assetid: 6b378974-fdd9-451b-b595-6b5b19b4ab48
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0570
+Property, indexer, or event 'name' is not supported by the language; try directly calling accessor method 'name!'
+
+ This error occurs when using imported metadata that was generated by another compiler. Your code attempted to use a class member that the compiler cannot process.
+
+## Example
+ The following C++ program uses an attribute, RequiredAttributeAttribute, which may not be consumed by other languages.
+
+```
+// CPP0570.cpp
+// compile with: /clr /LD
+
+using namespace System;
+using namespace System::Runtime::CompilerServices;
+
+namespace CS0570_Server {
+ [RequiredAttributeAttribute(Int32::typeid)]
+ public ref struct Scenario1 {
+ int intVar;
+ };
+
+ public ref struct CS0570Class {
+ Scenario1 ^ sc1_field;
+
+ property virtual Scenario1 ^ sc1_prop {
+ Scenario1 ^ get() { return sc1_field; }
+ }
+
+ Scenario1 ^ sc1_method() { return sc1_field; }
+ };
+};
+```
+
+## Example
+ The following sample generates CS0570.
+
+```
+// CS0570.cs
+// compile with: /reference:CPP0570.dll
+using System;
+using CS0570_Server;
+
+public class C {
+ public static int Main() {
+ CS0570Class r = new CS0570Class();
+ r.sc1_field = null; // CS0570
+ object o = r.sc1_prop; // CS0570
+ r.sc1_method(); // CS0570
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0571.md b/docs/csharp/language-reference/compiler-messages/cs0571.md
new file mode 100644
index 0000000000000..de4b4db0691ce
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0571.md
@@ -0,0 +1,77 @@
+---
+title: "Compiler Error CS0571 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0571"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0571"
+ms.assetid: 72a97e9c-3c78-47de-b477-dbd2c953d95d
+caps.latest.revision: 6
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0571
+'function' : cannot explicitly call operator or accessor
+
+ Certain operators have internal names. For example, **op_Increment** is the internal name of the ++ operator. You should not use or explicitly call such method names.
+
+ The following sample generates CS0571:
+
+```
+// CS0571.cs
+public class MyClass
+{
+ public static MyClass operator ++ (MyClass c)
+ {
+ return null;
+ }
+
+ public static int prop
+ {
+ get
+ {
+ return 1;
+ }
+ set
+ {
+ }
+ }
+
+ public static void Main()
+ {
+ op_Increment(null); // CS0571
+ // use the increment operator as follows
+ // MyClass x = new MyClass();
+ // x++;
+
+ set_prop(1); // CS0571
+ // try the following line instead
+ // prop = 1;
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0579.md b/docs/csharp/language-reference/compiler-messages/cs0579.md
new file mode 100644
index 0000000000000..e5f08c65d8ea7
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0579.md
@@ -0,0 +1,74 @@
+---
+title: "Compiler Error CS0579 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0579"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0579"
+ms.assetid: 1a15af7e-60ad-4418-a493-15fdfe08e7db
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0579
+Duplicate 'attribute' attribute
+
+ It is not possible to specify the same attribute more than once unless the attribute specifies **AllowMultiple=true** in its [AttributeUsage](../../../csharp/programming-guide/concepts/attributes/attributeusage.md).
+
+## Example
+ The following example generates CS0579.
+
+```cs
+// CS0579.cs
+using System;
+public class MyAttribute : Attribute
+{
+}
+
+[AttributeUsage(AttributeTargets.All,AllowMultiple=true)]
+public class MyAttribute2 : Attribute
+{
+}
+
+public class z
+{
+ [MyAttribute, MyAttribute] // CS0579
+ public void zz()
+ {
+ }
+
+ [MyAttribute2, MyAttribute2] // OK
+ public void zzz()
+ {
+ }
+
+ public static void Main()
+ {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0592.md b/docs/csharp/language-reference/compiler-messages/cs0592.md
new file mode 100644
index 0000000000000..37af7a6a2e70f
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0592.md
@@ -0,0 +1,66 @@
+---
+title: "Compiler Error CS0592 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0592"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0592"
+ms.assetid: 805c8cf0-eca2-4040-badd-a9c09ab5c747
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0592
+Attribute 'attribute' is not valid on this declaration type. It is valid on 'type' declarations only.
+
+ When you define an attribute, you define what constructs it can be applied to by specifying an `AttributeTargets` value. In the following example, the `MyAttribute` attribute can be applied to interfaces only, because the `AttributeUsage` attribute specifies `AttributeTargets.Iterface`. The error is generated because the attribute is applied to a class (class `A`).
+
+## Example
+ The following sample generates CS0592:
+
+```
+// CS0592.cs
+using System;
+
+[AttributeUsage(AttributeTargets.Interface)]
+public class MyAttribute : Attribute
+{
+}
+
+[MyAttribute]
+// Generates CS0592 because MyAttribute is not valid for a class.
+public class A
+{
+ public static void Main()
+ {
+ }
+}
+```
+
+## See Also
+ [Attributes](../../../csharp/programming-guide/concepts/attributes/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0616.md b/docs/csharp/language-reference/compiler-messages/cs0616.md
new file mode 100644
index 0000000000000..0d658ca792621
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0616.md
@@ -0,0 +1,79 @@
+---
+title: "Compiler Error CS0616 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0616"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0616"
+ms.assetid: ed60f7bb-40cf-4a93-b823-e29e83df7bf7
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0616
+'class' is not an attribute class
+
+ An attempt was made to use a non-attribute class in an attribute block. All the attribute types need to be inherited from .
+
+## Example
+ The following sample generates CS0616.
+
+```
+// CS0616.cs
+// compile with: /target:library
+[CMyClass(i = 5)] // CS0616
+public class CMyClass {}
+```
+
+## Example
+ The following sample shows how you might define an attribute:
+
+```
+// CreateAttrib.cs
+// compile with: /target:library
+using System;
+
+[AttributeUsage(AttributeTargets.Class|AttributeTargets.Interface)]
+public class MyAttr : Attribute
+{
+ public int Name = 0;
+ public int Count = 0;
+
+ public MyAttr (int iCount, int sName)
+ {
+ Count = iCount;
+ Name = sName;
+ }
+}
+
+[MyAttr(5, 50)]
+class Class1 {}
+
+[MyAttr(6, 60)]
+interface Interface1 {}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0618.md b/docs/csharp/language-reference/compiler-messages/cs0618.md
new file mode 100644
index 0000000000000..8e0a77847f7e1
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0618.md
@@ -0,0 +1,69 @@
+---
+title: "Compiler Warning (level 2) CS0618 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0618"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0618"
+ms.assetid: b6edf0a9-b186-4ed8-9e16-978659b89205
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 2) CS0618
+'member' is obsolete: 'text'
+
+ A class member was marked with the `Obsolete` attribute, such that a warning will be issued when the class member is referenced. For more information, see [Common Attributes](http://msdn.microsoft.com/library/2f48a7ec-9683-4899-a1d2-a08be8fc558b).
+
+ The following sample generates CS0618:
+
+```
+// CS0618.cs
+// compile with: /W:2
+using System;
+
+public class C
+{
+ [Obsolete("Use newMethod instead", false)] // warn if referenced
+ public static void m2()
+ {
+ }
+
+ public static void newMethod()
+ {
+ }
+}
+
+class MyClass
+{
+ public static void Main()
+ {
+ C.m2(); // CS0618
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0650.md b/docs/csharp/language-reference/compiler-messages/cs0650.md
new file mode 100644
index 0000000000000..592c44a7aa76e
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0650.md
@@ -0,0 +1,82 @@
+---
+title: "Compiler Error CS0650 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0650"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0650"
+ms.assetid: c81719ad-343d-4622-8130-41fcb24e3fb5
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0650
+Bad array declarator: To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type.
+
+ An array was declared incorrectly. In C#, unlike in C and C++, the square brackets follow the type, not the variable name. Also, realize that the syntax for a fixed size buffer differs from that of an array.
+
+## Example
+ The following example code generates CS0650.
+
+```
+// CS0650.cs
+public class MyClass
+{
+ public static void Main()
+ {
+// Generates CS0650. Incorrect array declaration syntax:
+ int myarray[2];
+
+ // Correct declaration.
+ int[] myarray2;
+
+ // Declaration and initialization in one statement
+ int[] myArray3= new int[2] {1,2}
+
+ // Access an array element.
+ myarray3[0] = 0;
+ }
+}
+```
+
+## Example
+ The following example shows how to use the `fixed` keyword when you create a fixed size buffer:
+
+```
+// This code must appear in an unsafe block.
+public struct MyArray
+{
+ public fixed char pathName[128];
+}
+
+```
+
+## See Also
+ [Fixed Size Buffers](../../../csharp/programming-guide/unsafe-code-pointers/fixed-size-buffers.md)
+ [fixed Statement](../../../csharp/language-reference/keywords/fixed-statement.md)
+ [Arrays](../../../csharp/programming-guide/arrays/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0675.md b/docs/csharp/language-reference/compiler-messages/cs0675.md
new file mode 100644
index 0000000000000..e6e0bda379bd0
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0675.md
@@ -0,0 +1,61 @@
+---
+title: "Compiler Warning (level 3) CS0675 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0675"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0675"
+ms.assetid: 7465dd8d-2543-44f6-b76b-fcae0ef2580d
+caps.latest.revision: 6
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 3) CS0675
+Bitwise-or operator used on a sign-extended operand; consider casting to a smaller unsigned type first
+
+ The compiler implicitly widened and sign-extended a variable, and then used the resulting value in a bitwise OR operation. This can result in unexpected behavior.
+
+ The following sample generates CS0675:
+
+```
+// CS0675.cs
+// compile with: /W:3
+using System;
+
+public class sign
+{
+ public static void Main()
+ {
+ int hi = 1;
+ int lo = 1;
+ long value = (((long)hi) << 32) | lo; // CS0675
+ // try the following line instead
+ // long value = (((long)hi) << 32) | ((uint)lo); // correct
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0686.md b/docs/csharp/language-reference/compiler-messages/cs0686.md
new file mode 100644
index 0000000000000..4638264d8f2d7
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0686.md
@@ -0,0 +1,101 @@
+---
+title: "Compiler Error CS0686 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0686"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0686"
+ms.assetid: 821ea0c9-87d8-4902-8f0b-dcad72312132
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0686
+Accessor 'accessor' cannot implement interface member 'member' for type 'type'. Use an explicit interface implementation.
+
+ Suggested: This error can occur when implementing an interface that contains method names which conflict with the auto-generated methods associated with a property or event. The get/set methods for properties are generated as get_property and set_property, and the add/remove methods for events are generated as add_event and remove_event. If an interface contains either of these methods, a conflict occurs. To avoid this error, implement the methods using an explicit interface implementation. To do this, specify the function as:
+
+```
+
+ Interface.get_property() { /* */ }
+Interface.set_property() { /* */ }
+```
+
+## Example
+ The following sample generates CS0686:
+
+```
+// CS0686.cs
+interface I
+{
+ int get_P();
+}
+
+class C : I
+{
+ public int P
+ {
+ get { return 1; } // CS0686
+ }
+}
+// But the following is valid:
+class D : I
+{
+ int I.get_P() { return 1; }
+ public static void Main() {}
+}
+```
+
+## Example
+ This error can also occur when declaring events. The event construct automatically generates the `add_``event` and `remove_``event` methods, which could conflict with the methods of the same name in an interface, as in the following sample:
+
+```
+// CS0686b.cs
+using System;
+
+interface I
+{
+ void add_OnMyEvent(EventHandler e);
+}
+
+class C : I
+{
+ public event EventHandler OnMyEvent
+ {
+ add { } // CS0686
+ remove { }
+ }
+}
+
+// Correct (using explicit interface implementation):
+class D : I
+{
+ void I.add_OnMyEvent(EventHandler e) {}
+ public static void Main() {}
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0702.md b/docs/csharp/language-reference/compiler-messages/cs0702.md
new file mode 100644
index 0000000000000..d49c5074ad623
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0702.md
@@ -0,0 +1,54 @@
+---
+title: "Compiler Error CS0702 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0702"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0702"
+ms.assetid: 55952b5b-66a6-4c53-ac53-2e90a363c335
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0702
+Constraint cannot be special class 'identifier'
+
+ The following types may not be used as constraints: `System.Object,``System.Array`, `System.Delegate`, `System.Enum`, or `System.ValueType`.
+
+## Example
+ The following sample generates CS0702:
+
+```
+// CS0702.cs
+class C where T : System.Array // CS0702
+{
+}
+```
+
+## See Also
+ [Constraints on Type Parameters](../../../csharp/programming-guide/generics/constraints-on-type-parameters.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0703.md b/docs/csharp/language-reference/compiler-messages/cs0703.md
new file mode 100644
index 0000000000000..b771743637025
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0703.md
@@ -0,0 +1,53 @@
+---
+title: "Compiler Error CS0703 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0703"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0703"
+ms.assetid: 3f488412-248e-40ad-9d76-96cb3eb73778
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0703
+Inconsistent accessibility: constraint type 'identifier' is less accessible than 'identifier'
+
+ A constraint may not force the generic parameter to be less accessible than the generic class itself. In the following example, while the generic class C\ is declared public, the constraint attempts to force T to implement an internal interface. Even if this were allowed, only clients with internal access would be able to create the parameter for the class, so in effect, the class could be used only by clients with internal access.
+
+ To get rid of this error, make sure the access level of the generic class is not less restrictive than any classes or interfaces that appear in the bounds.
+
+ The following sample generates CS0703:
+
+```
+// CS0703.cs
+internal interface I {}
+public class C where T : I // CS0703 – I is internal; C is public
+{
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0731.md b/docs/csharp/language-reference/compiler-messages/cs0731.md
new file mode 100644
index 0000000000000..045c33c04e613
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0731.md
@@ -0,0 +1,143 @@
+---
+title: "Compiler Error CS0731 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0731"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0731"
+ms.assetid: b2df5d5c-b1cd-4620-881f-f5a492669784
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0731
+The type forwarder for type 'type' in assembly 'assembly' causes a cycle
+
+ This error can only occur with improperly formed imported metadata. It cannot occur with only C# source.
+
+## Example
+ The following sample generates CS0731. The example consists of three files:
+
+ 1. Circular.IL
+
+ 2. Circular2.IL
+
+ 3. CS0731.cs
+
+ First compile the .IL files as libraries, and then compile the .cs code referencing the two files.
+
+```
+// Circular.il
+// compile with: /DLL /out=Circular.dll
+.assembly extern circular2
+{
+ .ver 0:0:0:0
+}
+.assembly extern circular3
+{
+ .ver 0:0:0:0
+}
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 2:0:0:0
+}
+.assembly Circular
+{
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
+ .hash algorithm 0x00008004
+ .ver 0:0:0:0
+}
+.class extern forwarder Circular.Referenced.TypeForwarder
+{
+ .assembly extern circular2
+}
+.module Circular.dll
+// MVID: {880C2329-C915-42A0-83E9-9D10C3E6DBD0}
+.imagebase 0x00400000
+.file alignment 0x00000200
+.stackreserve 0x00100000
+.subsystem 0x0003 // WINDOWS_CUI
+.corflags 0x00000001 // ILONLY
+// Image base: 0x04E40000
+// ======== CLASS MEMBERS DECLARATION =========
+.class public abstract auto ansi sealed beforefieldinit User
+ extends [mscorlib]System.Object
+{
+ .method public hidebysig static class [circular2]Circular.Referenced.TypeForwarder
+ F() cil managed
+ {
+ .maxstack 1
+ newobj instance void [circular2]Circular.Referenced.TypeForwarder::.ctor()
+ ret
+ }
+}
+```
+
+```
+// Circular2.il
+// compile with: /DLL /out=Circular2.dll
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 2:0:0:0
+}
+.assembly extern Circular
+{
+ .ver 0:0:0:0
+}
+.assembly circular2
+{
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
+ .hash algorithm 0x00008004
+ .ver 0:0:0:0
+}
+.class extern forwarder Circular.Referenced.TypeForwarder
+{
+ .assembly extern Circular
+}
+.module circular2.dll
+// MVID: {8B3BE5C8-DBE1-49C4-BC72-DF35F0387C21}
+.imagebase 0x00400000
+.file alignment 0x00000200
+.stackreserve 0x00100000
+.subsystem 0x0003 // WINDOWS_CUI
+.corflags 0x00000001 // ILONLY
+// Image base: 0x04E40000
+```
+
+```
+// CS0731.cs
+// compile with: /reference:circular.dll /reference:circular2.dll
+// CS0731 expected
+class A {
+ public static void Main() {
+ User.F();
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0826.md b/docs/csharp/language-reference/compiler-messages/cs0826.md
new file mode 100644
index 0000000000000..b36b19b9eec09
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0826.md
@@ -0,0 +1,76 @@
+---
+title: "Compiler Error CS0826 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0826"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0826"
+ms.assetid: baa68741-2813-4bdd-9312-dd45fdf10701
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0826
+No best type found for implicitly typed array.
+
+ Array elements must all be the same type or implicitly convertible to the same type according to the type inference rules used by the compiler. The best type must be one of the types present in the array expression. Elements will not be converted to a new type such as `object`. For an implicitly typed array, the compiler must infer the array type based on the type of elements assigned to it.
+
+## To correct this error
+
+- Give the array an explicit type.
+
+- Give all array elements the same type.
+
+- Provide explicit casts on those elements that might be causing the problem.
+
+## Example
+ The following code generates CS0826 because the array elements are not all the same type, and the compiler's type inference logic does not find a single best type:
+
+```
+// cs0826.cs
+public class C
+{
+ public static int Main()
+ {
+ var x = new[] { 1, "str" }; // CS0826
+
+ char c = 'c';
+ short s1 = 0;
+ short s2 = -0;
+ short s3 = 1;
+ short s4 = -1;
+
+ var array1 = new[] { s1, s2, s3, s4, c, '1' }; // CS0826
+ return 1;
+ }
+}
+
+```
+
+## See Also
+ [Implicitly Typed Local Variables](../../../csharp/programming-guide/classes-and-structs/implicitly-typed-local-variables.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0834.md b/docs/csharp/language-reference/compiler-messages/cs0834.md
new file mode 100644
index 0000000000000..f72aca2b12898
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0834.md
@@ -0,0 +1,64 @@
+---
+title: "Compiler Error CS0834 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0834"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0834"
+ms.assetid: f3d26696-eeb4-4ea3-9667-b8f51577567e
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0834
+A lambda expression must have an expression body to be converted to an expression tree.
+
+ Lambdas that are translated to expression trees must be expression lambdas; statement lambdas and anonymous methods can only be converted to delegate types.
+
+## To correct this error
+
+1. Remove the statement from the lambda expression.
+
+## Example
+ The following example generates CS0834:
+
+```
+// cs0834.cs
+using System;
+using System.Linq;
+using System.Linq.Expressions;
+
+public class C
+{
+ public static int Main()
+ {
+ Expression> e = x => { return x; }; // CS0834
+ }
+}
+
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0840.md b/docs/csharp/language-reference/compiler-messages/cs0840.md
new file mode 100644
index 0000000000000..186bc2cc2e80f
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0840.md
@@ -0,0 +1,66 @@
+---
+title: "Compiler Error CS0840 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0840"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0840"
+ms.assetid: f307083f-8d86-4142-a9fd-b735910687b2
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0840
+'Property name' must declare a body because it is not marked abstract or extern. Automatically implemented properties must define both get and set accessors.
+
+ Unless a regular property is marked as `abstract` or `extern`, or is a member of a `partial` type, it must supply a body. Auto-implemented properties do not provide accessor bodies, but they must specify both accessors. To create a read-only auto-implemented property, make the set accessor `private`.
+
+## To correct this error
+
+1. Supply the missing body or accessor or else use the [abstract](../../../csharp/language-reference/keywords/abstract.md), [extern](../../../csharp/language-reference/keywords/extern.md), or [partial (Type)](../../../csharp/language-reference/keywords/partial-type.md) modifiers on it and/or its enclosing type.
+
+## Example
+ The following example generates CS0840:
+
+```
+// cs0840.cs
+// Compile with /target:library
+using System;
+class Test
+{
+ public int myProp { get; } // CS0840
+
+ // to create a read-only property
+ // try the following line instead
+ public int myProp2 { get; private set; }
+
+}
+```
+
+## See Also
+ [Auto-Implemented Properties](../../../csharp/programming-guide/classes-and-structs/auto-implemented-properties.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0843.md b/docs/csharp/language-reference/compiler-messages/cs0843.md
new file mode 100644
index 0000000000000..5c14594f4f5ac
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0843.md
@@ -0,0 +1,70 @@
+---
+title: "Compiler Error CS0843 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0843"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0843"
+ms.assetid: 5d9e01f5-9581-46e4-8d1b-9c3ffc438570
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0843
+Backing field for automatically implemented property 'name' must be fully assigned before control is returned to the caller. Consider calling the default constructor from a constructor initializer.
+
+ To assign a value to an automatically-implemented property from a constructor, you must first invoke the default constructor to create the object.
+
+## To correct this error
+
+1. Add a call to the default constructor in a constructor initializer as shown in the following example. Note the use of `: this()`. For more information, see [this](../../../csharp/language-reference/keywords/this.md).
+
+## Example
+ The following code generates CS0843:
+
+```
+// cs0843.cs
+struct S
+{
+ public int AIProp { get; set; }
+ public S(int i){} //CS0843
+ // Try the following lines instead.
+ // public S(int i) : this()
+ // {
+ // AIProp = i;
+ // }
+}
+
+class Test
+{
+ static int Main()
+ {
+ return 1;
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs0845.md b/docs/csharp/language-reference/compiler-messages/cs0845.md
new file mode 100644
index 0000000000000..24bf616137c53
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs0845.md
@@ -0,0 +1,68 @@
+---
+title: "Compiler Error CS0845 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS0845"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS0845"
+ms.assetid: ed1d5fd1-d525-416e-91ab-2ce1aff0f83b
+caps.latest.revision: 5
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS0845
+An expression tree lambda may not contain a coalescing operator with a null literal left-hand side.
+
+ Because null by itself does not have a type, the null coalescing operator cannot operate on it.
+
+## To correct this error
+
+1. Cast the null literal to an object.
+
+## Example
+ The following code generates CS0845:
+
+```
+// cs0845.cs
+using System;
+using System.Linq;
+using System.Linq.Expressions;
+
+namespace ConsoleApplication1
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ Expression> e = () => null ?? null; // CS0845
+ // Try the following line instead.
+ // Expression> e = () => (object)null ?? null;
+ }
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1001.md b/docs/csharp/language-reference/compiler-messages/cs1001.md
new file mode 100644
index 0000000000000..ea118138a8c00
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1001.md
@@ -0,0 +1,96 @@
+---
+title: "Compiler Error CS1001 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1001"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1001"
+ms.assetid: 327ad669-9c20-4fe8-a771-234878dbb90e
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1001
+Identifier expected
+
+ You did not supply an identifier. An identifier is the name of a class, struct, namespace, method, variable and so on that you provide.
+
+ The following example declares a simple class but does not give the class a name:
+
+```
+//cs1001.cs
+public class //CS1001
+ {
+ public int Num {get; set;}
+ void MethodA(){}
+ }
+```
+
+ The following sample generates CS1001 because, when declaring an enum, you must specify members:
+
+```
+// CS1001.cs
+public class clx
+{
+ enum Colors : int
+ {
+ 'a', 'b' // CS1001, 'a' is not a valid int identifier
+ // The following line shows examples of valid identifiers:
+ // Blue, Red, Orange
+ };
+
+ public static void Main()
+ {
+ }
+}
+
+```
+
+ Parameter names are required even if the compiler doesn't use them, for example, in an interface definition. These parameters are required so that programmers who are consuming the interface know something about the what the parameters mean.
+
+```
+// CS1001-2.cs
+// compile with: /target:library
+interface IMyTest
+{
+ void TestFunc1(int, int); // CS1001
+ // Use the following line instead:
+ // void TestFunc1(int a, int b);
+}
+
+class CMyTest : IMyTest
+{
+ void IMyTest.TestFunc1(int a, int b)
+ {
+ }
+}
+```
+
+## See Also
+ [Statements, Expressions, and Operators](../../../csharp/programming-guide/statements-expressions-operators/index.md)
+ [Types](../../../csharp/programming-guide/types/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1009.md b/docs/csharp/language-reference/compiler-messages/cs1009.md
new file mode 100644
index 0000000000000..0b8ba64f8ab31
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1009.md
@@ -0,0 +1,83 @@
+---
+title: "Compiler Error CS1009 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1009"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1009"
+ms.assetid: 348f500c-0e4f-44d7-95a8-e215ac49940a
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1009
+Unrecognized escape sequence
+
+ An unexpected character follows a backslash (\\) in a [string](../../../csharp/language-reference/keywords/string.md). The compiler expects one of the valid escape characters. For more information, see [Character Escapes](http://msdn.microsoft.com/library/f49cc9cc-db7d-4058-8b8a-422bc08b29b0).
+
+ The following sample generates CS1009.
+
+```cs
+// CS1009-a.cs
+class MyClass
+{
+ static void Main()
+ {
+ // The following line causes CS1009.
+ string a = "\m";
+ // Try the following line instead.
+ // string a = "\t";
+ }
+}
+```
+
+ A common cause of this error is using the backslash character in a file name, as the following example shows.
+
+```cs
+string filename = "c:\myFolder\myFile.txt";
+```
+
+ To resolve this error, use "\\\\" or the @-quoted string literal, as the following example shows.
+
+```cs
+// CS1009-b.cs
+class MyClass
+{
+ static void Main()
+ {
+ // The following line causes CS1009.
+ string filename = "c:\myFolder\myFile.txt";
+ // Try one of the following lines instead.
+ // string filename = "c:\\myFolder\\myFile.txt";
+ // string filename = @"c:\myFolder\myFile.txt";
+ }
+}
+```
+
+## See Also
+ [string](../../../csharp/language-reference/keywords/string.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1018.md b/docs/csharp/language-reference/compiler-messages/cs1018.md
new file mode 100644
index 0000000000000..ea95edfe9adc8
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1018.md
@@ -0,0 +1,71 @@
+---
+title: "Compiler Error CS1018 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1018"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1018"
+ms.assetid: f6dc7f6a-57fd-4c9e-8699-add3218af983
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1018
+Keyword 'this' or 'base' expected
+
+ The compiler encountered an incomplete constructor declaration.
+
+## Example
+ The following example generates CS1018, and suggests several ways to resolve the error:
+
+```
+// CS1018.cs
+public class C
+{
+}
+
+public class a : C
+{
+ public a(int i)
+ {
+ }
+
+ public a () : // CS1018
+ // possible resolutions:
+ // public a () resolves by removing the colon
+ // public a () : base() calls C's default constructor
+ // public a () : this(1) calls the assignment constructor of class a
+ {
+ }
+
+ public static int Main()
+ {
+ return 1;
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1019.md b/docs/csharp/language-reference/compiler-messages/cs1019.md
new file mode 100644
index 0000000000000..2af573a8ae5b6
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1019.md
@@ -0,0 +1,91 @@
+---
+title: "Compiler Error CS1019 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1019"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1019"
+ms.assetid: 11a3acd8-bcab-4ead-a91b-a1498ea1eab5
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# Compiler Error CS1019
+Overloadable unary operator expected
+
+ Something that looks like an overloaded unary operator has been declared, but the operator is missing or is in the wrong location in the signature.
+
+ A *unary operator* is an operator that operates on a single operand. For example, `++` is a unary operator. You can overload some unary operators by using the `operator` keyword and specifying a single parameter of the type that the operator operates on. For example, if you want to overload the operator `++` for a user-defined class `Temperature` so that you can write `Temperature++`, you can define it in this way:
+
+```cs
+public static Temperature operator ++ (Temperature temp)
+{
+ temp.Degrees++;
+ return temp;
+}
+```
+
+ When you receive this error, you have declared something that looks like an overloaded unary operator, except that the operator itself is missing or is in the wrong location in the signature. If you remove the `++` from the signature in the previous example, you will generate CS1019.
+
+ The following code generates CS1019:
+
+```cs
+// CS1019.cs
+public class ii
+{
+ int i
+ {
+ get
+ {
+ return 0;
+ }
+ }
+}
+
+public class a
+{
+ public int i;
+// Generates CS1019: "ii" is not a unary operator.
+ public static a operator ii(a aa)
+
+ // Use the following line instead:
+ //public static a operator ++(a aa)
+ {
+ aa.i++;
+ return aa;
+ }
+
+ public static void Main()
+ {
+ }
+}
+```
+
+## See Also
+ [Operators](../../../csharp/programming-guide/statements-expressions-operators/operators.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1026.md b/docs/csharp/language-reference/compiler-messages/cs1026.md
new file mode 100644
index 0000000000000..db7f6a0d301fa
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1026.md
@@ -0,0 +1,74 @@
+---
+title: "Compiler Error CS1026 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1026"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1026"
+ms.assetid: 782c0570-19c2-425d-aa41-565d33aa9bc0
+caps.latest.revision: 5
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1026
+) expected
+
+ An incomplete statement was found.
+
+ A common cause of this error is placing a statement, rather than an expression, within an inline expression in an ASP.NET page. For example, the following is incorrect:
+
+```
+<%=new TimeSpan(DateTime.Now.Ticks - new DateTime(2001, 1, 1).Ticks).Days;%>
+```
+
+ The following is correct:
+
+```
+<%=new TimeSpan(DateTime.Now.Ticks - new DateTime(2001, 1, 1).Ticks).Days %>
+```
+
+ It is interpreted as follows:
+
+```
+<% Response.Write(new TimeSpan(DateTime.Now.Ticks - new DateTime(2001, 1, 1).Ticks).Days); %>
+```
+
+ The following example generates CS1026:
+
+```
+// CS1026.cs
+#if (a == b // CS1026, add closing )
+#endif
+
+class x
+{
+ public static void Main()
+ {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1029.md b/docs/csharp/language-reference/compiler-messages/cs1029.md
new file mode 100644
index 0000000000000..13bbcc100ecb0
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1029.md
@@ -0,0 +1,54 @@
+---
+title: "Compiler Error CS1029 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1029"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1029"
+ms.assetid: 61bd4d44-9bfc-42bb-a9f0-a0683da53640
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1029
+\#error: 'text'
+
+ Displays the text of an error defined with the [#error](../../../csharp/language-reference/preprocessor-directives/preprocessor-error.md) directive.
+
+ The following sample shows how to create a user-defined error:
+
+```
+// CS1029.cs
+class Sample
+{
+ static void Main()
+ {
+ #error Let's give an error here // CS1029
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1058.md b/docs/csharp/language-reference/compiler-messages/cs1058.md
new file mode 100644
index 0000000000000..b9088f82bcaa2
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1058.md
@@ -0,0 +1,70 @@
+---
+title: "Compiler Warning (level 1) CS1058 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1058"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1058"
+ms.assetid: ed50590c-f130-47c3-976d-322a6c8f996d
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1058
+A previous catch clause already catches all exceptions. All exceptions thrown will be wrapped in a System.Runtime.CompilerServices.RuntimeWrappedException
+
+ This attribute causes CS1058 if a `catch()` block has no specified exception type after a `catch (System.Exception e)` block. The warning advises that the `catch()` block will not catch any exceptions.
+
+ A `catch()` block after a `catch (System.Exception e)` block can catch non-CLS exceptions if the `RuntimeCompatibilityAttribute` is set to false in the AssemblyInfo.cs file: `[assembly: RuntimeCompatibilityAttribute(WrapNonExceptionThrows = false)]`. If this attribute is not set explicitly to false, all thrown non-CLS exceptions are wrapped as Exceptions and the `catch (System.Exception e)` block catches them. For more information, see [How to: Catch a non-CLS Exception](../../../csharp/programming-guide/exceptions/how-to-catch-a-non-cls-exception.md).
+
+## Example
+ The following example generates CS1058.
+
+```
+// CS1058.cs
+// CS1058 expected
+using System.Runtime.CompilerServices;
+
+// the following attribute is set to true by default in the C# compiler
+// set to false in your source code to resolve CS1058
+[assembly: RuntimeCompatibilityAttribute(WrapNonExceptionThrows = true)]
+
+class TestClass
+{
+ static void Main()
+ {
+ try {}
+
+ catch (System.Exception e) {
+ System. Console.WriteLine("Caught exception {0}", e);
+ }
+
+ catch {} // CS1058. This line will never be reached.
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1060.md b/docs/csharp/language-reference/compiler-messages/cs1060.md
new file mode 100644
index 0000000000000..86e54ebfe6012
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1060.md
@@ -0,0 +1,85 @@
+---
+title: "Compiler Warning (level 1) CS1060 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1060"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1060"
+ms.assetid: af389239-672b-449e-84b5-edb52e320013
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1060
+Use of possibly unassigned field 'name'. Struct instance variables are initially unassigned if struct is unassigned.
+
+ Struct members are initialized to their default value if you do not explicitly initialize them. The default value for class types (and other reference types) is null. If the class is not initialized before any attempt to access it, a `NullReferenceException` will be thrown at runtime. The compiler cannot determine definitively whether the class member will be initialized or not, and so CS1060 is a warning and not an error.
+
+## To correct this error
+
+1. Provide a constructor for the `struct` that initializes all its members.
+
+## Example
+ The following code generates CS1060 because the class type `U` is a member of the `struct S` but is never initialized.
+
+```
+// cs1060.cs
+namespace CS1060
+{
+ public class U
+ {
+ public int i;
+ }
+
+ public struct S
+ {
+ public U u;
+ // Add constructor to correct the error.
+ //public S(int val)
+ //{
+ // u = new U() { i = val };
+ //}
+ }
+ public class Test
+ {
+ static void Main()
+ {
+ S s;
+ s.u.i = 5; // CS1060
+
+ //Try these lines instead, and uncomment the constructor in S
+ // S s = new S(0);
+ // s.u.i = 5;
+
+ }
+ }
+}
+```
+
+## See Also
+ [Structs](../../../csharp/programming-guide/classes-and-structs/structs.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1061.md b/docs/csharp/language-reference/compiler-messages/cs1061.md
new file mode 100644
index 0000000000000..50d7ff65fda95
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1061.md
@@ -0,0 +1,86 @@
+---
+title: "Compiler Error CS1061 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1061"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1061"
+ms.assetid: 10ba0509-d541-43da-acf5-eaa7987e41d4
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1061
+'type' does not contain a definition for 'member' and no extension method 'name' accepting a first argument of type 'type' could be found (are you missing a using directive or an assembly reference?).
+
+ This error occurs when you try to call a method or access a class member that does not exist.
+
+## Example
+ The following example generates CS1061 because `TestClass1` does not have a `DisplaySomething` method. It does have a method that is called `WriteSomething`. Perhaps that is what the author of this source code meant to write.
+
+```cs
+// cs1061.cs
+public class TestClass1
+{
+ // TestClass1 has one method, called WriteSomething.
+ public void WriteSomething(string s)
+ {
+ System.Console.WriteLine(s);
+ }
+}
+
+public class TestClass2
+{
+ // TestClass2 has one method, called DisplaySomething.
+ public void DisplaySomething(string s)
+ {
+ System.Console.WriteLine(s);
+ }
+}
+
+public class TestTheClasses
+{
+ public static void Main()
+ {
+ TestClass1 tc1 = new TestClass1();
+ TestClass2 tc2 = new TestClass2();
+ // The following call fails because TestClass1 does not have
+ // a method called DisplaySomething.
+ tc1.DisplaySomething("Hello"); // CS1061
+
+ // To correct the error, change the method call to either
+ // tc1.WriteSomething or tc2.DisplaySomething.
+ tc1.WriteSomething("Hello from TestClass1");
+ tc2.DisplaySomething("Hello from TestClass2");
+ }
+}
+```
+
+## See Also
+ [Classes and Structs](../../../csharp/programming-guide/classes-and-structs/index.md)
+ [Extension Methods](../../../csharp/programming-guide/classes-and-structs/extension-methods.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1112.md b/docs/csharp/language-reference/compiler-messages/cs1112.md
new file mode 100644
index 0000000000000..1d02a37b8adb7
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1112.md
@@ -0,0 +1,61 @@
+---
+title: "Compiler Error CS1112 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1112"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1112"
+ms.assetid: 72c5f497-8572-41c7-8243-0d5670daca3f
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1112
+Do not use 'System.Runtime.CompilerServices.ExtensionAttribute'. Use the 'this' keyword instead.
+
+ This error is generated when the is used on a non-static class that contains extension methods. If this attribute is used on a static class, another error, such as CS0708: "Cannot declare instance members in a static class," might occur.
+
+ In C#, extension methods must be defined in a static class and the first parameter of the method is modified with the `this` keyword. Do not use the attribute at all in the source code. For more information, see [Extension Methods](../../../csharp/programming-guide/classes-and-structs/extension-methods.md).
+
+## To correct this error
+
+1. Remove the attribute and apply the `this` modifier to the first parameter of the method.
+
+## Example
+ The following example generates CS1112:
+
+```
+// cs1112.cs
+[System.Runtime.CompilerServices.ExtensionAttribute] // CS1112
+public class Extensions
+{
+ public bool A(bool b) { return b; }
+}
+
+class A { }
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1501.md b/docs/csharp/language-reference/compiler-messages/cs1501.md
new file mode 100644
index 0000000000000..122d169aed203
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1501.md
@@ -0,0 +1,87 @@
+---
+title: "Compiler Error CS1501 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1501"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1501"
+ms.assetid: 99a59646-e2c8-4ee5-9785-4a2c1ae77458
+caps.latest.revision: 17
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# Compiler Error CS1501
+No overload for method 'method' takes 'number' arguments
+
+ A call was made to a class method, but no definition of the method takes the specified number of arguments.
+
+## Example
+ The following sample generates CS1501.
+
+```cs
+using System;
+
+namespace ConsoleApplication1
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ ExampleClass ec = new ExampleClass();
+ ec.ExampleMethod();
+ ec.ExampleMethod(10);
+ // The following line causes compiler error CS1501 because
+ // ExampleClass does not contain an ExampleMethod that takes
+ // two arguments.
+ ec.ExampleMethod(10, 20);
+ }
+ }
+
+ // ExampleClass contains two overloads for ExampleMethod. One of them
+ // has no parameters and one has a single parameter.
+ class ExampleClass
+ {
+ public void ExampleMethod()
+ {
+ Console.WriteLine("Zero parameters");
+ }
+
+ public void ExampleMethod(int i)
+ {
+ Console.WriteLine("One integer parameter.");
+ }
+
+ //// To fix the error, you must add a method that takes two arguments.
+ //public void ExampleMethod (int i, int j)
+ //{
+ // Console.WriteLine("Two integer parameters.");
+ //}
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1502.md b/docs/csharp/language-reference/compiler-messages/cs1502.md
new file mode 100644
index 0000000000000..dc85a5a5304ec
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1502.md
@@ -0,0 +1,73 @@
+---
+title: "Compiler Error CS1502 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1502"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1502"
+ms.assetid: f302f00a-5fe1-4e42-b91c-f185d6311671
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1502
+The best overloaded method match for 'name' has some invalid arguments
+
+ This error occurs when the argument types being passed to the method do not match the parameter types of that method. If the called method is overloaded, then none of the overloaded versions has a signature that matches the argument types being passed.
+
+ To resolve this problem, do one of the following:
+
+- Double-check the types of the arguments being passed. Make sure that they match the arguments of the method being called.
+
+- If appropriate, convert any mismatched parameters using the class.
+
+- If appropriate, cast any mismatched parameters to match the type that the method is expecting.
+
+- If appropriate, define another overloaded version of the method to match the parameter types that are being sent.
+
+ The following sample generates CS1502:
+
+```
+// CS1502.cs
+namespace x
+{
+ public class a
+ {
+ public a(char i)
+ // try the following constructor instead
+ // public a(int i)
+ {
+ }
+
+ public static void Main()
+ {
+ a aa = new a(2222); // CS1502
+ }
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1519.md b/docs/csharp/language-reference/compiler-messages/cs1519.md
new file mode 100644
index 0000000000000..169b3c1c702f9
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1519.md
@@ -0,0 +1,71 @@
+---
+title: "Compiler Error CS1519 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1519"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1519"
+ms.assetid: 186cef8e-c6c7-49aa-8b43-f6c2cb628414
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1519
+Invalid token 'token' in class, struct, or interface member declaration
+
+ This error is generated whenever a token is encountered in a location where it does not belong. A *token* is a keyword; an identifier (the name of a class, struct, method, and so on); a string, character, or numeric literal value such as 108, "Hello", or 'A'; or an operator or punctuator such as `==` or `;`.
+
+ Any [class](../../../csharp/language-reference/keywords/class.md), struct, or interface member declaration that contains invalid modifiers before the type will generate this error. To fix the error, remove the invalid modifiers.
+
+ The following sample generates CS1519 in five places because tokens are placed in locations where they are not valid:
+
+```cs
+// CS1519.cs
+// Generates CS1519 because a class name cannot be a number:
+class Test 42
+{
+// Generates CS1519 because of 'j' following 'I'
+// with no comma between them:
+ int i j;
+// Generates CS1519 because of "checked" on void method:
+ checked void f4();
+
+// Generates CS1519 because of "num":
+ void f5(int a num){}
+
+// Generates CS1519 because of namespace inside class:
+ namespace;
+
+}
+```
+
+## See Also
+ [Classes](../../../csharp/programming-guide/classes-and-structs/classes.md)
+ [Structs](../../../csharp/programming-guide/classes-and-structs/structs.md)
+ [Interfaces](../../../csharp/programming-guide/interfaces/index.md)
+ [Methods](../../../csharp/programming-guide/classes-and-structs/methods.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1540.md b/docs/csharp/language-reference/compiler-messages/cs1540.md
new file mode 100644
index 0000000000000..6bdcd633981c8
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1540.md
@@ -0,0 +1,103 @@
+---
+title: "Compiler Error CS1540 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1540"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1540"
+ms.assetid: f35bbeb9-e2b2-4644-a7e6-cc2dbce1bd44
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# Compiler Error CS1540
+Cannot access protected member 'member' via a qualifier of type 'type1'; the qualifier must be of type 'type2' (or derived from it)
+
+ A derived [class](../../../csharp/language-reference/keywords/class.md) cannot access protected members of its base class through an instance of the base class. An instance of the base class declared in the derived class might, at run time, be an instance of another type that is derived from the same base but is not otherwise related to the derived class. Because protected members can be accessed only by derived types, any attempts to access protected members that might not be valid at run time are marked by the compiler as not valid.
+
+ In the `Employee` class in the following example, `emp2` and `emp3` both have type `Person` at compile time, but `emp2` has type `Manager` at run time. Because `Employee` is not derived from `Manager`, it cannot access the protected members of the base class, `Person`, through an instance of the `Manager` class. The compiler cannot determine what the run-time type of the two `Person` objects will be. Therefore, both the call from `emp2` and the call from `emp3` cause compiler error CS1540.
+
+```cs
+using System;
+using System.Text;
+
+namespace CS1540
+{
+ class Program1
+ {
+ static void Main()
+ {
+ Employee.PreparePayroll();
+ }
+ }
+
+ class Person
+ {
+ protected virtual void CalculatePay()
+ {
+ Console.WriteLine("CalculatePay in Person class.");
+ }
+ }
+
+ class Manager : Person
+ {
+ protected override void CalculatePay()
+ {
+ Console.WriteLine("CalculatePay in Manager class.");
+
+ }
+ }
+
+ class Employee : Person
+ {
+ public static void PreparePayroll()
+ {
+ Employee emp1 = new Employee();
+ Person emp2 = new Manager();
+ Person emp3 = new Employee();
+ // The following line calls the method in the Employee base class,
+ // Person.
+ emp1.CalculatePay();
+
+ // The following lines cause compiler error CS1540. The compiler
+ // cannot determine at compile time what the run-time types of
+ // emp2 and emp3 will be.
+ //emp2.CalculatePay();
+ //emp3.CalculatePay();
+
+ }
+ }
+}
+```
+
+## See Also
+ [Inheritance](../../../csharp/programming-guide/classes-and-structs/inheritance.md)
+ [Polymorphism](../../../csharp/programming-guide/classes-and-structs/polymorphism.md)
+ [Access Modifiers](../../../csharp/programming-guide/classes-and-structs/access-modifiers.md)
+ [Abstract and Sealed Classes and Class Members](../../../csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1546.md b/docs/csharp/language-reference/compiler-messages/cs1546.md
new file mode 100644
index 0000000000000..db98dbf2936b3
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1546.md
@@ -0,0 +1,83 @@
+---
+title: "Compiler Error CS1546 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1546"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1546"
+ms.assetid: 15fe2cdc-954f-4c67-80fd-9903c464f361
+caps.latest.revision: 14
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1546
+Property, indexer, or event 'property' is not supported by the language; try directly calling accessor method 'accessor'
+
+ Your code is consuming an object that has a default indexed property and tried to use the indexed syntax. To resolve this error, call the property's accessor method. For more information on indexers and properties, see [Indexers](../../../csharp/programming-guide/indexers/index.md).
+
+ The following sample generates CS1546.
+
+## Example
+ This code sample consists of a .cpp file, which compiles to a .dll, and a .cs file, which uses that .dll. The following code is for the .dll file, and defines a property to be accessed by the code in the .cs file.
+
+```
+// CPP1546.cpp
+// compile with: /clr /LD
+using namespace System;
+public ref class MCPP
+{
+public:
+ property int Prop [int,int]
+ {
+ int get( int i, int b )
+ {
+ return i;
+ }
+ }
+};
+```
+
+## Example
+ This is the C# file.
+
+```
+// CS1546.cs
+// compile with: /r:CPP1546.dll
+using System;
+public class Test
+{
+ public static void Main()
+ {
+ int i = 0;
+ MCPP mcpp = new MCPP();
+ i = mcpp.Prop(1,1); // CS1546
+ // Try the following line instead:
+ // i = mcpp.get_Prop(1,1);
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1548.md b/docs/csharp/language-reference/compiler-messages/cs1548.md
new file mode 100644
index 0000000000000..d358a48a430c9
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1548.md
@@ -0,0 +1,50 @@
+---
+title: "Compiler Error CS1548 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1548"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1548"
+ms.assetid: 63a467fa-d85f-4876-a8c9-2ae5fdebebab
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1548
+Cryptographic failure while signing assembly 'assembly' — 'reason'
+
+ CS1548 occurs when assembly signing fails. This is usually due to an invalid key file name, an invalid key file path, or a corrupt key file.
+
+ To fully sign an assembly, you must provide a valid key file that contains information about the public and private keys. To delay sign an assembly, you must select the **Delay sign only** check box and provide a valid key file that contains information about the public key information. The private key is not necessary when an assembly is delay-signed.
+
+ For more information, see [How to: Sign an Assembly (Visual Studio)](http://msdn.microsoft.com/en-us/f468a7d3-234c-4353-924d-8e0ae5896564), [/keyfile (C# Compiler Options)](../../../csharp/language-reference/compiler-options/keyfile-compiler-option.md) and [/delaysign (C# Compiler Options)](../../../csharp/language-reference/compiler-options/delaysign-compiler-option.md).
+
+ When creating an assembly, the C# compiler calls into a utility called al.exe. If there is a failure in the assembly creation, the reason for the failure is reported by al.exe. See [Al.exe Tool Errors and Warnings](http://msdn.microsoft.com/en-us/7f125d49-0a03-47a6-9ba9-d61a679a7d4b) and search that topic for the text reported by the compiler in 'reason'.
+
+## See Also
+ [How to: Sign an Assembly (Visual Studio)](http://msdn.microsoft.com/en-us/f468a7d3-234c-4353-924d-8e0ae5896564)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1564.md b/docs/csharp/language-reference/compiler-messages/cs1564.md
new file mode 100644
index 0000000000000..fb9a3dfc1b02e
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1564.md
@@ -0,0 +1,66 @@
+---
+title: "Compiler Error CS1564 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1564"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1564"
+ms.assetid: 32206075-a14b-4c24-bd78-257104078f83
+caps.latest.revision: 6
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1564
+Conflicting options specified: Win32 resource file; Win32 manifest.
+
+ If you use the **/Win32res** compiler option, you must include the custom Win32 manifest (if it is required) in the resource file. You cannot provide a custom Win32 manifest separately from a Win32 resource file. Use the **/win32manifest** option only if you are not specifying a win32 resource file.
+
+## To correct this error
+
+1. Add the win32 manifest to the win32 resource file and remove the **/win32manifest** compiler option.
+
+## Example
+ The following example produces CS1564 if it is compiled with the **/Win32res** option and no manifest is included in the resource file.
+
+```
+// cs1564.cs
+// Compile with: /Win32res
+public class Test
+{
+ static int Main(string[] args)
+ {
+ return 1;
+ }
+}
+```
+
+ The C# 3.0 compiler adds a default win32Manifest to all binaries.
+
+## See Also
+ [/win32manifest (C# Compiler Options)](../../../csharp/language-reference/compiler-options/win32manifest-compiler-option.md)
+ [/win32res (C# Compiler Options)](../../../csharp/language-reference/compiler-options/win32res-compiler-option.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1567.md b/docs/csharp/language-reference/compiler-messages/cs1567.md
new file mode 100644
index 0000000000000..29325246f0f87
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1567.md
@@ -0,0 +1,43 @@
+---
+title: "Compiler Error CS1567 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1567"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1567"
+ms.assetid: 837b9855-191b-4384-ad45-52960906679c
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1567
+Error generating Win32 resource: 'file'
+
+ Your compilation either used the [/win32icon](../../../csharp/language-reference/compiler-options/win32icon-compiler-option.md) compiler option or did not use [/win32res](../../../csharp/language-reference/compiler-options/win32res-compiler-option.md), which causes the compiler to generate a file that contains resource information, but the compiler was unable to create the file due to insufficient disk space or some other error.
+
+ If you are unable to resolve the file-generation problem, you could use [/win32res](../../../csharp/language-reference/compiler-options/win32res-compiler-option.md), which does not generate a file that contains resource information.
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1579.md b/docs/csharp/language-reference/compiler-messages/cs1579.md
new file mode 100644
index 0000000000000..91faf3b4c74f0
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1579.md
@@ -0,0 +1,112 @@
+---
+title: "Compiler Error CS1579 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1579"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1579"
+ms.assetid: 1eba84ce-58df-4fe3-9134-e26efefdc4ab
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1579
+foreach statement cannot operate on variables of type 'type1' because 'type2' does not contain a public definition for 'identifier'
+
+ To iterate through a collection using the [foreach](../../../csharp/language-reference/keywords/foreach-in.md) statement, the collection must meet the following requirements:
+
+- It must be an interface, class or struct.
+
+- It must include a public method that returns a type.
+
+- The return type must contain a public property named , and a public method named .
+
+- For more information, see [How to: Access a Collection Class with foreach](../../../csharp/programming-guide/classes-and-structs/how-to-access-a-collection-class-with-foreach.md).
+
+## Example
+ In this sample, [foreach](../../../csharp/language-reference/keywords/foreach-in.md) is not able to iterate through the collection because there is no `public` method in `MyCollection`.
+
+ The following sample generates CS1579.
+
+```
+// CS1579.cs
+using System;
+public class MyCollection
+{
+ int[] items;
+ public MyCollection()
+ {
+ items = new int[5] {12, 44, 33, 2, 50};
+ }
+
+ // Delete the following line to resolve.
+ MyEnumerator GetEnumerator()
+
+ // Uncomment the following line to resolve:
+ // public MyEnumerator GetEnumerator()
+ {
+ return new MyEnumerator(this);
+ }
+
+ // Declare the enumerator class:
+ public class MyEnumerator
+ {
+ int nIndex;
+ MyCollection collection;
+ public MyEnumerator(MyCollection coll)
+ {
+ collection = coll;
+ nIndex = -1;
+ }
+
+ public bool MoveNext()
+ {
+ nIndex++;
+ return(nIndex < collection.items.GetLength(0));
+ }
+
+ public int Current
+ {
+ get
+ {
+ return(collection.items[nIndex]);
+ }
+ }
+ }
+
+ public static void Main()
+ {
+ MyCollection col = new MyCollection();
+ Console.WriteLine("Values in the collection are:");
+ foreach (int i in col) // CS1579
+ {
+ Console.WriteLine(i);
+ }
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1591.md b/docs/csharp/language-reference/compiler-messages/cs1591.md
new file mode 100644
index 0000000000000..a5b847dccc551
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1591.md
@@ -0,0 +1,57 @@
+---
+title: "Compiler Warning (level 4) CS1591 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1591"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1591"
+ms.assetid: 53c8599e-3e83-4d17-998b-05c934704283
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 4) CS1591
+Missing XML comment for publicly visible type or member 'Type_or_Member'
+
+ The [/doc](../../../csharp/language-reference/compiler-options/doc-compiler-option.md) compiler option was specified, but one or more constructs did not have comments.
+
+ The following sample generates CS1591:
+
+```
+// CS1591.cs
+// compile with: /W:4 /doc:x.xml
+
+/// text
+public class Test
+{
+ // /// text
+ public static void Main() // CS1591, remove "//" from previous line
+ {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1598.md b/docs/csharp/language-reference/compiler-messages/cs1598.md
new file mode 100644
index 0000000000000..1cfeae30b39dc
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1598.md
@@ -0,0 +1,41 @@
+---
+title: "Compiler Warning (level 1) CS1598 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1598"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1598"
+ms.assetid: de8d473e-0c18-4236-af24-a832b47fbfb1
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1598
+XML parser could not be loaded for the following reason: 'reason'. The XML documentation file 'file' will not be generated.
+
+ The [/doc](../../../csharp/language-reference/compiler-options/doc-compiler-option.md) option was specified, but the compiler could not find and load msxml3.dll. Make sure that the file msxml3.dll is installed and registered.
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1607.md b/docs/csharp/language-reference/compiler-messages/cs1607.md
new file mode 100644
index 0000000000000..a4796db12630c
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1607.md
@@ -0,0 +1,49 @@
+---
+title: "Compiler Warning (level 1) CS1607 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1607"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1607"
+ms.assetid: 7ad8e1a4-40c2-41cc-b4ee-cc4d7beb4372
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1607
+Assembly generation -- reason
+
+ A warning was generated from the assembly-creation phase of the compilation.
+
+ If you are building a 64-bit application on a 32-bit operating system, you must ensure that 64-bit versions of all referenced assemblies are installed on the target operating system.
+
+ All x86-specific common language runtime (CLR) assemblies have 64-bit counterparts (every CLR assembly will exist on all operating systems). Therefore, you can safely ignore CS1607 for CLR assemblies.
+
+ You can ignore this warning if you encounter it when you create a . The informational version is a string that attaches additional version information to an assembly; this information is not used at run time. Although you can specify any text, a warning message appears on compilation if the string is not in the format that is used by the assembly version number, or if it is in that format but contains wildcard characters. This warning is harmless.
+
+ For more information, see [Al.exe Tool Errors and Warnings](http://msdn.microsoft.com/en-us/7f125d49-0a03-47a6-9ba9-d61a679a7d4b).
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1610.md b/docs/csharp/language-reference/compiler-messages/cs1610.md
new file mode 100644
index 0000000000000..b1be3450e3cd2
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1610.md
@@ -0,0 +1,45 @@
+---
+title: "Compiler Warning (level 4) CS1610 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1610"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1610"
+ms.assetid: dc78dbcc-d5a0-4776-953c-1fe72b6fd5ea
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 4) CS1610
+Unable to delete temporary file 'file' used for default Win32 resource -- resource
+
+ When using the [/win32res](../../../csharp/language-reference/compiler-options/win32res-compiler-option.md) compiler option and when your **%TEMP%** directory does not have DELETE permission, this warning indicates that the compiler could not delete a temporary file that it created.
+
+ Make sure that you have read/write/delete permissions for the **%TEMP%** directory.
+
+ If necessary, you can manually delete these files and there will be no harm to C# or any of your programs.
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1612.md b/docs/csharp/language-reference/compiler-messages/cs1612.md
new file mode 100644
index 0000000000000..912470543ad89
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1612.md
@@ -0,0 +1,112 @@
+---
+title: "Compiler Error CS1612 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1612"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1612"
+ms.assetid: ef5db985-030a-4f15-b53f-e92c9297c6a3
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1612
+Cannot modify the return value of 'expression' because it is not a variable
+
+ An attempt was made to modify a value type that is produced as the result of an intermediate expression but is not stored in a variable. This error can occur when you attempt to directly modify a struct in a generic collection, as shown in the following example:
+
+```cs
+List list = {…};
+list[0].Name = "MyStruct42"; //CS1612
+```
+
+ To modify the struct, first assign it to a local variable, modify the variable, then assign the variable back to the item in the collection.
+
+```cs
+List list = {…};
+MyStruct ms = list[0];
+ms.Name = "MyStruct42";
+list[0] = ms;
+```
+
+ This error occurs because value types are copied on assignment. When you retrieve a value type from a property or indexer, you are getting a copy of the object, not a reference to the object itself. The copy that is returned is not stored by the property or indexer because they are actually methods, not storage locations (variables). You must store the copy into a variable that you declare before you can modify it.
+
+ The error does not occur with reference types because a property or indexer in that case returns a reference to an existing object, which is a storage location.
+
+ If you are defining the class or struct, you can resolve this error by modifying your property declaration to provide access to the members of a struct. If you are writing client code, you can resolve the error by creating your own instance of the struct, modifying its fields, and then assigning the entire struct back to the property. As a third alternative, you can change your struct to a class.
+
+## Example
+ CS1612 also occurs when you attempt to access the member of a struct through a property on an enclosing class that is returning the entire struct, as shown in the following example:
+
+```cs
+// CS1612.cs
+using System;
+
+public struct MyStruct
+{
+ public int Width;
+}
+
+public class ListView
+{
+ MyStruct ms;
+ public MyStruct Size
+ {
+ get { return ms; }
+ set { ms = value; }
+ }
+}
+
+public class MyClass
+{
+ public MyClass()
+ {
+ ListView lvi;
+ lvi = new ListView();
+ lvi.Size.Width = 5; // CS1612
+
+ // You can use the following lines instead.
+ // MyStruct ms;
+ // ms.Width = 5;
+ // lvi.Size = ms; // CS1612
+ }
+
+ public static void Main()
+ {
+ MyClass mc = new MyClass();
+ // Keep the console open in debug mode.
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+}
+```
+
+## See Also
+ [Structs](../../../csharp/programming-guide/classes-and-structs/structs.md)
+ [Value Types](../../../csharp/language-reference/keywords/value-types.md)
+ [Reference Types](../../../csharp/language-reference/keywords/reference-types.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1614.md b/docs/csharp/language-reference/compiler-messages/cs1614.md
new file mode 100644
index 0000000000000..a0faf4c59a4ff
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1614.md
@@ -0,0 +1,84 @@
+---
+title: "Compiler Error CS1614 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1614"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1614"
+ms.assetid: 787eef18-74a6-49d9-9f34-f0881aca8dff
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1614
+'name' is ambiguous; between 'attribute1' and 'attribute2'. use either '@attribute' or 'attributeAttribute'
+
+ The compiler has encountered an ambiguous attribute specification.
+
+ For convenience, the C# compiler allows you to specify **ExampleAttribute** as just `[Example]`. However, ambiguity arises if an attribute class named `Example` exists along with **ExampleAttribute**, because the compiler cannot tell if `[Example]` refers to the `Example` attribute or the **ExampleAttribute** attribute. To clarify, use `[@Example]` for the `Example` attribute and `[ExampleAttribute]` for **ExampleAttribute**.
+
+ The following sample generates CS1614:
+
+```
+// CS1614.cs
+using System;
+
+// Both of the following classes are valid attributes with valid
+// names (MySpecial and MySpecialAttribute). However, because the lookup
+// rules for attributes involves auto-appending the 'Attribute' suffix
+// to the identifier, these two attributes become ambiguous; that is,
+// if you specify MySpecial, the compiler can't tell if you want
+// MySpecial or MySpecialAttribute.
+
+public class MySpecial : Attribute {
+ public MySpecial() {}
+}
+
+public class MySpecialAttribute : Attribute {
+ public MySpecialAttribute() {}
+}
+
+class MakeAWarning {
+ [MySpecial()] // CS1614
+ // Ambiguous: MySpecial or MySpecialAttribute?
+ public static void Main() {
+ }
+
+ [@MySpecial()] // This isn't ambiguous, it binds to the first attribute above.
+ public static void NoWarning() {
+ }
+
+ [MySpecialAttribute()] // This isn't ambiguous, it binds to the second attribute above.
+ public static void NoWarning2() {
+ }
+
+ [@MySpecialAttribute()] // This is also legal.
+ public static void NoWarning3() {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1616.md b/docs/csharp/language-reference/compiler-messages/cs1616.md
new file mode 100644
index 0000000000000..404c68e5fc1cf
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1616.md
@@ -0,0 +1,65 @@
+---
+title: "Compiler Warning (level 1) CS1616 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1616"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1616"
+ms.assetid: 7fb99eba-8da3-4c1b-81a3-bc4a57822e45
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1616
+Option 'option' overrides attribute 'attribute' given in a source file or added module
+
+ This warning occurs if the assembly attributes or found in source conflict with the [/keyfile](../../../csharp/language-reference/compiler-options/keyfile-compiler-option.md) or [/keycontainer](../../../csharp/language-reference/compiler-options/keycontainer-compiler-option.md) command line option or key file name or key container specified in the Project Properties.
+
+ For the example below, assume you have a key file named `cs1616.snk`. This file could be generated with the command line:
+
+```
+sn –k CS1616.snk
+```
+
+ The following sample generates CS1616:
+
+```
+// CS1616.cs
+// compile with: /keyfile:cs1616.snk
+using System.Reflection;
+
+// To fix the error, remove the next line
+[assembly: AssemblyKeyFile("cs1616b.snk")] // CS1616
+
+class C
+{
+ public static void Main()
+ {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1640.md b/docs/csharp/language-reference/compiler-messages/cs1640.md
new file mode 100644
index 0000000000000..4fc12ad4e8281
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1640.md
@@ -0,0 +1,82 @@
+---
+title: "Compiler Error CS1640 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1640"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1640"
+ms.assetid: 1393668e-05e9-4dc2-9203-3d9c2933406f
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1640
+foreach statement cannot operate on variables of type 'type' because it implements multiple instantiations of 'interface', try casting to a specific interface instantiation
+
+ The type inherits from two or more instances of IEnumerator\, which means there is not a unique enumeration of the type that `foreach` could use. Specify the type of IEnumerator\ or use another looping construct.
+
+## Example
+ The following sample generates CS1640:
+
+```
+// CS1640.cs
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+public class C : IEnumerable, IEnumerable, IEnumerable
+{
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ yield break;
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ yield break;
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return (IEnumerator)((IEnumerable)this).GetEnumerator();
+ }
+}
+
+public class Test
+{
+ public static int Main()
+ {
+ foreach (int i in new C()){} // CS1640
+
+ // Try specifing the type of IEnumerable
+ // foreach (int i in (IEnumerable)new C()){}
+ return 1;
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1644.md b/docs/csharp/language-reference/compiler-messages/cs1644.md
new file mode 100644
index 0000000000000..5ed149f14fad3
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1644.md
@@ -0,0 +1,49 @@
+---
+title: "Compiler Error CS1644 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1644"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1644"
+ms.assetid: f51e2064-29e1-4a22-bbe3-577fa52df6bc
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1644
+Feature 'feature' is not part of the standardized ISO C# language specification, and may not be accepted by other compilers
+
+ This error occurs if you specified the [/langversion](../../../csharp/language-reference/compiler-options/langversion-compiler-option.md) option ISO-1 and the code you are compiling uses features that are not part of the ISO 1.0 standard. To resolve this error, do not use any of the C# 2.0 compiler features such as generics or anonymous methods with the ISO-1 compatibility option.
+
+ The following sample generates CS1644:
+
+```
+// CS1644.cs
+// compile with: /langversion:ISO-1 /target:library
+class C {} // CS1644
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1656.md b/docs/csharp/language-reference/compiler-messages/cs1656.md
new file mode 100644
index 0000000000000..94f8e330ab30b
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1656.md
@@ -0,0 +1,141 @@
+---
+title: "Compiler Error CS1656 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1656"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1656"
+ms.assetid: b5463a12-d685-4dae-9f88-08383e271b7a
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1656
+Cannot assign to 'variable' because it is a 'read-only variable type'
+
+ This error occurs when an assignment to variable occurs in a read-only context. Read-only contexts include [foreach](../../../csharp/language-reference/keywords/foreach-in.md) iteration variables, [using](../../../csharp/language-reference/keywords/using-statement.md) variables, and [fixed](../../../csharp/language-reference/keywords/fixed-statement.md) variables. To resolve this error, avoid assignments to a statement variable in `using` blocks, `foreach` statements, and `fixed` statements.
+
+## Example
+ The following example generates error CS1656 because it tries to replace complete elements of a collection inside a `foreach` loop. One way to work around the error is to change the `foreach` loop to a [for](../../../csharp/language-reference/keywords/for.md) loop. Another way, not shown here, is to modify the members of the existing element; this is possible with classes, but not with structs.
+
+```
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace CS1656_2
+{
+
+ class Book
+ {
+ public string Title;
+ public string Author;
+ public double Price;
+ public Book(string t, string a, double p)
+ {
+ Title=t;
+ Author=a;
+ Price=p;
+
+ }
+ }
+
+ class Program
+ {
+ private List list;
+ static void Main(string[] args)
+ {
+ Program prog = new Program();
+ prog.list = new List();
+ prog.list.Add(new Book ("The C# Programming Language",
+ "Hejlsberg, Wiltamuth, Golde",
+ 29.95));
+ prog.list.Add(new Book ("The C++ Programming Language",
+ "Stroustrup",
+ 29.95));
+ prog.list.Add(new Book ("The C Programming Language",
+ "Kernighan, Ritchie",
+ 29.95));
+ foreach(Book b in prog.list)
+ {
+ // Cannot modify an entire element in a foreach loop
+ // even with reference types.
+ // Use a for or while loop instead
+ if (b.Title == "The C Programming Language")
+ // Cannot assign to 'b' because it is a 'foreach
+ // iteration variable'
+ b = new Book("Programming Windows, 5th Ed.", "Petzold", 29.95); //CS1656
+ }
+
+ //With a for loop you can modify elements
+ //for(int x = 0; x < prog.list.Count; x++)
+ //{
+ // if(prog.list[x].Title== "The C Programming Language")
+ // prog.list[x] = new Book("Programming Windows, 5th Ed.", "Petzold", 29.95);
+ //}
+ //foreach(Book b in prog.list)
+ // Console.WriteLine(b.Title);
+
+ }
+ }
+}
+```
+
+## Example
+ The following sample demonstrates how CS1656 can be generated in other contexts besides a `foreach` loop:
+
+```
+// CS1656.cs
+// compile with: /unsafe
+using System;
+
+class C : IDisposable
+{
+ public void Dispose() { }
+}
+
+class CMain
+{
+ unsafe public static void Main()
+ {
+ using (C c = new C())
+ {
+ // Cannot assign to 'c' because it is a 'using variable'
+ c = new C(); // CS1656
+ }
+
+ int[] ary = new int[] { 1, 2, 3, 4 };
+ fixed (int* p = ary)
+ {
+ // Cannot assign to 'p' because it is a 'fixed variable'
+ p = null; // CS1656
+ }
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1658.md b/docs/csharp/language-reference/compiler-messages/cs1658.md
new file mode 100644
index 0000000000000..919035f1060e2
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1658.md
@@ -0,0 +1,69 @@
+---
+title: "Compiler Warning (level 1) CS1658 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1658"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1658"
+ms.assetid: e67b033d-4c88-4552-b3cd-dfc34546502b
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1658
+'warning text'. See also error 'error code'
+
+ The compiler emits this warning when it overrides an error with a warning. For information about the problem, refer to the error mentioned. To find the appropriate error from within the Visual Studio IDE, use the index. For example, if the text above reads "See also error 'CS1037'," look for CS1037 in the index.
+
+## Example
+ The following example generates CS1658.
+
+```
+// CS1658.cs
+// compile with: /doc:x.xml
+// CS1584 expected
+///
+///
+public class C
+{
+ /// // CS1658
+ public static void M()
+ {
+ }
+
+ ///
+ ///
+ public void F(params object[] o)
+ {
+ }
+
+ static void Main()
+ {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1674.md b/docs/csharp/language-reference/compiler-messages/cs1674.md
new file mode 100644
index 0000000000000..c2da041543138
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1674.md
@@ -0,0 +1,100 @@
+---
+title: "Compiler Error CS1674 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1674"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1674"
+ms.assetid: 7a018629-35f4-406a-8a5f-1cee7343da6d
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1674
+'T': type used in a using statement must be implicitly convertible to 'System.IDisposable'
+
+ The [using Statement](../../../csharp/language-reference/keywords/using-statement.md) is intended to be used to ensure the disposal of an object at the end of the `using` block, thus, only types which are disposable may be used in such a statement. For example, value types are not disposable, and type parameters which are not constrained to be classes may not be assumed to be disposable.
+
+## Example
+ The following sample generates CS1674.
+
+```
+// CS1674.cs
+class C
+{
+ public static void Main()
+ {
+ int a = 0;
+ a++;
+
+ using (a) {} // CS1674
+ }
+}
+```
+
+## Example
+ The following sample generates CS1674.
+
+```
+// CS1674_b.cs
+using System;
+class C {
+ public void Test() {
+ using (C c = new C()) {} // CS1674
+ }
+}
+
+// OK
+class D : IDisposable {
+ void IDisposable.Dispose() {}
+ public void Dispose() {}
+
+ public static void Main() {
+ using (D d = new D()) {}
+ }
+}
+```
+
+## Example
+ The following case illustrates the need for a class type constraint to guarantee that an unknown type parameter is disposable. The following sample generates CS1674.
+
+```
+// CS1674_c.cs
+// compile with: /target:library
+using System;
+public class C
+// Add a class type constraint that specifies a disposable class.
+// Uncomment the following line to resolve.
+// public class C where T : IDisposable
+{
+ public void F(T t)
+ {
+ using (t) {} // CS1674
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1683.md b/docs/csharp/language-reference/compiler-messages/cs1683.md
new file mode 100644
index 0000000000000..781d0436297f7
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1683.md
@@ -0,0 +1,41 @@
+---
+title: "Compiler Warning (level 1) CS1683 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1683"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1683"
+ms.assetid: b3bd2729-a9e3-4b00-9937-d8d859fe87ef
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1683
+Reference to type 'Type Name' claims it is defined in this assembly, but it is not defined in source or any added modules
+
+ This error can occur when you are importing an assembly that contains a reference back to the assembly you are currently compiling, but the assembly being compiled contains nothing matching the reference. One way to get to this situation is to compile your assembly, which initially does contain the member that the assembly being imported is referencing. Then you update your assembly, mistakenly removing the members that the imported assembly is referencing.
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1685.md b/docs/csharp/language-reference/compiler-messages/cs1685.md
new file mode 100644
index 0000000000000..e23ac68f20536
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1685.md
@@ -0,0 +1,43 @@
+---
+title: "Compiler Warning (level 1) CS1685 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1685"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1685"
+ms.assetid: b115dd93-a749-4549-83d3-9cdc92a8ef31
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1685
+The predefined type 'System.type name' is defined in multiple assemblies in the global alias; using definition from 'File Name'
+
+ This error occurs when a predefined system type such as System.int32 is found in two assemblies. One way this can happen is if you are referencing mscorlib from two different places, such as trying to run the.Net Framework versions 1.0 and 1.1 side-by-side.
+
+ The compiler will use the definition from only one of the assemblies. The compiler searches only global aliases, does not search libraries defined **/reference**. If you have specified **/nostdlib**, the compiler will search for , and in the future start all searches for predefined types in the file where it found .
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1690.md b/docs/csharp/language-reference/compiler-messages/cs1690.md
new file mode 100644
index 0000000000000..11c87a2fbb311
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1690.md
@@ -0,0 +1,64 @@
+---
+title: "Compiler Warning (level 1) CS1690 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1690"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1690"
+ms.assetid: bc76efe0-4304-4449-8c11-950667aa8ac9
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1690
+Accessing a member on 'member' may cause a runtime exception because it is a field of a marshal-by-reference class
+
+ This warning occurs when you try to call a method, property, or indexer on a member of a class that derives from , and the member is a value type. Objects that inherit from `MarshalByRefObject` are typically intended to be marshaled by reference across an application domain. If any code ever attempts to directly access the value-type member of such an object across an application domain, a runtime exception will occur. To resolve the warning, first copy the member into a local variable and call the method on that variable.
+
+ The following sample generates CS1690:
+
+```
+// CS1690.cs
+using System;
+
+class WarningCS1690: MarshalByRefObject
+{
+ int i = 5;
+
+ public static void Main()
+ {
+ WarningCS1690 e = new WarningCS1690();
+ e.i.ToString(); // CS1690
+
+ // OK
+ int i = e.i;
+ i.ToString();
+ e.i = i;
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1691.md b/docs/csharp/language-reference/compiler-messages/cs1691.md
new file mode 100644
index 0000000000000..61babff13c904
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1691.md
@@ -0,0 +1,63 @@
+---
+title: "Compiler Warning (level 1) CS1691 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1691"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1691"
+ms.assetid: 7f0fea4d-4215-446c-a249-57daa7e967d2
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1691
+'number' is not a valid warning number
+
+ A number that was passed to the [#pragma warning](../../../csharp/language-reference/preprocessor-directives/preprocessor-pragma-warning.md) preprocessor directive was not a valid warning number. Verify that the number represents a warning, not an error or another sequence of characters.
+
+## Example
+ The following example generates CS1691.
+
+```
+// CS1691.cs
+public class C
+{
+ int i = 1;
+ public static void Main()
+ {
+ C myC = new C();
+#pragma warning disable 151 // CS1691
+// Try the following line instead:
+// #pragma warning disable 1645
+ myC.i++;
+#pragma warning restore 151 // CS1691
+// Try the following line instead:
+// #pragma warning restore 1645
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1699.md b/docs/csharp/language-reference/compiler-messages/cs1699.md
new file mode 100644
index 0000000000000..d8e5388199754
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1699.md
@@ -0,0 +1,75 @@
+---
+title: "Compiler Warning (level 1) CS1699 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1699"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1699"
+ms.assetid: acf4b57d-8534-4417-9324-65415b5676ae
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1699
+Use command line option "compiler_option" or appropriate project settings instead of "attribute_name"
+
+ In order to sign an assembly, it is necessary to specify a key file. Prior to [!INCLUDE[csprcsext](../../../csharp/language-reference/compiler-messages/includes/csprcsext_md.md)], you specified the key file using CLR attributes in source code. These attributes are now deprecated.
+
+ Beginning in [!INCLUDE[csprcsext](../../../csharp/language-reference/compiler-messages/includes/csprcsext_md.md)], you should use the **Signing Page** of the **Project Designer** or the Assembly Linker to specify the key file.
+
+ The **Signing Page** of the **Project Designer** is the preferred method; for more information, see [Signing Page, Project Designer](/visualstudio/ide/reference/signing-page-project-designer) and [Managing Assembly and Manifest Signing](/visualstudio/ide/managing-assembly-and-manifest-signing).
+
+ The [How to: Sign an Assembly with a Strong Name](http://msdn.microsoft.com/library/2c30799a-a826-46b4-a25d-c584027a6c67) uses the following compiler options:
+
+- [/keyfile (C# Compiler Options)](../../../csharp/language-reference/compiler-options/keyfile-compiler-option.md) instead of the attribute.
+
+- [/keycontainer (C# Compiler Options)](../../../csharp/language-reference/compiler-options/keycontainer-compiler-option.md) instead of.
+
+- [/delaysign (C# Compiler Options)](../../../csharp/language-reference/compiler-options/delaysign-compiler-option.md) instead of .
+
+ These attributes have been deprecated for the following reasons:
+
+- There were security issues due to the attributes being embedded in the binary files produced by the compiler. Everyone who had your binary also had the keys stored in it.
+
+- There were usability issues due to the fact that the path specified in the attributes was relative to the current working directory, which could change in the integrated development environment (IDE), or to the output directory. Thus, most times the key file is likely to be ..\\\\..\\\mykey.snk. Attributes also make it more difficult for the project system to properly sign satellite assemblies. When you use the compiler options instead of these attributes, you can use a fully qualified path and file name for the key without anything being embedded in the output file; the project system and source code control system can properly manipulate that full path when projects are moved around; the project system can maintain a project-relative path to the key file, and still pass a full path to the compiler; other build programs can more easily sign outputs by passing the proper path directly to the compiler instead of generating a source file with the correct attributes.
+
+- Using attributes with friend assemblies can hamper compiler efficiency. When you use attributes, the compiler does not know what the key is when it has to decide whether or not to grant friendship and so it has to guess. At the end of compilation, the compiler is able to verify the guess once it finally knows the key. When the key file is specified with a compiler option, the compiler can immediately decide whether to grant friendship.
+
+## Example
+ The following sample generates CS1699. To resolve the error, remove the attribute and compile with **/delaysign**.
+
+```
+// CS1699.cs
+// compile with: /target:library
+[assembly:System.Reflection.AssemblyDelaySign(true)] // CS1699
+```
+
+## See Also
+ [Signing Page, Project Designer](/visualstudio/ide/reference/signing-page-project-designer)
+ [Managing Assembly and Manifest Signing](/visualstudio/ide/managing-assembly-and-manifest-signing)
+ [How to: Sign an Assembly with a Strong Name](http://msdn.microsoft.com/library/2c30799a-a826-46b4-a25d-c584027a6c67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1700.md b/docs/csharp/language-reference/compiler-messages/cs1700.md
new file mode 100644
index 0000000000000..78e545978b90e
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1700.md
@@ -0,0 +1,54 @@
+---
+title: "Compiler Warning (level 3) CS1700 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1700"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1700"
+ms.assetid: fcd38d68-e34b-4f87-8290-444e66886597
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 3) CS1700
+Assembly reference Assembly Name is invalid and cannot be resolved
+
+ This warning indicates that an attribute, such as , was not specified correctly.
+
+ For more information, see [Friend Assemblies](http://msdn.microsoft.com/library/df0c70ea-2c2a-4bdc-9526-df951ad2d055).
+
+## Example
+ The following sample generates CS1700.
+
+```
+// CS1700.cs
+// compile with: /target:library
+using System.Runtime.CompilerServices;
+[assembly:InternalsVisibleTo("app2, Retargetable=f")] // CS1700
+[assembly:InternalsVisibleTo("app2")] // OK
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1701.md b/docs/csharp/language-reference/compiler-messages/cs1701.md
new file mode 100644
index 0000000000000..7bc82a5f22286
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1701.md
@@ -0,0 +1,110 @@
+---
+title: "Compiler Warning (level 2) CS1701 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1701"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1701"
+ms.assetid: adbaf99e-c283-49a7-b940-4c9b84ebcb03
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 2) CS1701
+Assuming assembly reference "Assembly Name #1" matches "Assembly Name #2", you may need to supply runtime policy
+
+ The two assemblies differ in release and/or version number. For unification to occur, you must specify directives in the application's .config file, and you must provide the correct strong name of an assembly, as demonstrated in the following example code.
+
+## Example
+ The following multifile sample references an assembly using two different external aliases. This first sample builds the older version of the code that creates assembly CS1701_d.
+
+```
+// CS1701_a.cs
+// compile with: /target:library /out:cs1701_d.dll /keyfile:mykey.snk
+using System.Reflection;
+[assembly:AssemblyVersion("1.0")]
+public class A {
+ public void M1() {}
+}
+
+public class C1 {}
+```
+
+## Example
+ This is the code that creates the newer version of assembly CS1701_d. Note that it compiles into a different directory than the older version, necessary since the output files have the same names.
+
+```
+// CS1701_b.cs
+// compile with: /target:library /out:c:\\cs1701_d.dll /keyfile:mykey.snk
+using System.Reflection;
+[assembly:AssemblyVersion("2.0")]
+public class A {
+ public void M2() {}
+ public void M1() {}
+}
+
+public class C2 {}
+public class C1 {}
+```
+
+## Example
+ This sample sets up the external aliases A1 and A2.
+
+```
+// CS1701_c.cs
+// compile with: /target:library /reference:A2=c:\\cs1701_d.dll /reference:A1=cs1701_d.dll
+
+extern alias A1;
+extern alias A2;
+// using System;
+using a1 = A1::A;
+using a2 = A2::A;
+
+public class Ref {
+ public static a1 A1() { return new a1(); }
+ public static a2 A2() { return new a2(); }
+
+ public static A1::C1 M1() { return new A1::C1(); }
+ public static A2::C2 M2() { return new A2::C2(); }
+}
+```
+
+## Example
+ This sample calls methods using two different aliases of A. The following sample generates C1701.
+
+```
+// CS1701_d.cs
+// compile with: /reference:c:\\CS1701_d.dll /reference:CS1701_c.dll
+// CS1701 expected
+class Tester {
+ public static void Main() {
+ Ref.A1().M1();
+ Ref.A2().M2();
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1703.md b/docs/csharp/language-reference/compiler-messages/cs1703.md
new file mode 100644
index 0000000000000..bd700c0ed8ed8
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1703.md
@@ -0,0 +1,73 @@
+---
+title: "Compiler Error CS1703 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1703"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1703"
+ms.assetid: b17738e9-ed35-46b0-88b8-763ce24211d1
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1703
+An assembly with the same simple name 'name' has already been imported. Try removing one of the references or sign them to enable side-by-side.
+
+ The compiler removes references that have the same path and file name, but it is possible that the same file exists in two places, or that you forgot to change the version number. This error points out that two references have the same assembly identity and thus the compiler has no way of distinguishing between them in metadata. Either remove one of the redundant references, or make the references unique somehow, such as by incrementing the assembly version number.
+
+ The following code generates error CS1703.
+
+## Example
+ This code creates assembly A in the .\bin1 directory.
+
+ Save this example in a file named CS1703a1.cs, and compile it with the following flags: `/t:library /out:.\bin1\cs1703.dll /keyfile:key.snk`
+
+```
+using System;
+public class A { }
+```
+
+## Example
+ This code creates a copy of assembly A in the .\bin2 directory.
+
+ Save this example in a file named CS1703a2.cs, and compile it with the following flags: `/t:library /out:.\bin2\cs1703.dll /keyfile:key.snk`
+
+```
+using System;
+public class A { }
+```
+
+## Example
+ This code references the assembly A in the two prior modules.
+
+ Save this example in a file named CS1703ref.cs, and compile it with the following flags: `/t:library /r:A2=.\bin2\cs1703.dll /r:A1=.\bin1\cs1703.dll`
+
+```
+extern alias A1;
+extern alias A2;
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1704.md b/docs/csharp/language-reference/compiler-messages/cs1704.md
new file mode 100644
index 0000000000000..92e1082fe6280
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1704.md
@@ -0,0 +1,70 @@
+---
+title: "Compiler Error CS1704 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1704"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1704"
+ms.assetid: da5e89d5-bbb7-47e9-92f6-b03b1602dee4
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1704
+An assembly with the same simple name 'Assembly Name' has already been imported. Try removing one of the references or sign them to enable side-by-side.
+
+ This error points out that two references have the same assembly identity because the assemblies in question lack strong names, they were not signed, and thus the compiler has no way of distinguishing between them in metadata. Thus, the run time ignores the version and culture assembly name properties. The user should remove the redundant reference, rename one of the references, or provide a strong name for them.
+
+## Example
+ This sample creates an assembly and saves it to the root directory.
+
+```
+// CS1704_a.cs
+// compile with: /target:library /out:c:\\cs1704.dll
+public class A {}
+```
+
+## Example
+ This sample creates an assembly with the same name as the previous sample, but saves it to a different location.
+
+```
+// CS1704_b.cs
+// compile with: /target:library /out:cs1704.dll
+public class A {}
+```
+
+## Example
+ This sample attempts to reference both assemblies. The following sample generates CS1704.
+
+```
+// CS1704_c.cs
+// compile with: /target:library /r:A2=cs1704.dll /r:A1=c:\\cs1704.dll
+// CS1704 expected
+extern alias A1;
+extern alias A2;
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1705.md b/docs/csharp/language-reference/compiler-messages/cs1705.md
new file mode 100644
index 0000000000000..a6755d861f873
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1705.md
@@ -0,0 +1,174 @@
+---
+title: "Compiler Error CS1705 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1705"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1705"
+ms.assetid: 3612a542-0256-4fed-b020-41691ef5a052
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1705
+Assembly 'AssemblyName1' uses 'TypeName' which has a higher version than referenced assembly 'AssemblyName2'
+
+ You are accessing a type that has a higher version number than the version number in a referenced assembly. Typically, this error is caused by the accidental use of two versions of the same assembly.
+
+ For example, suppose that you have two assemblies, Asmb1 and Asmb2. Assembly Asmb1 references version 1.0 of assembly Asmb2. Assembly Asmb1 also uses a class `MyClass` that was added to assembly Asmb2 in version 2.0. The compiler has unification rules for binding references, and a reference to `MyClass` in version 2.0 cannot be satisfied by version 1.0.
+
+## Example
+ The following more detailed example consists of four code modules:
+
+- Two DLLs that are identical except for a version attribute.
+
+- A third DLL that references the first two.
+
+- A client that references only version 1.0 of the identical DLLs, but accesses a class from version 2.0.
+
+ The following code creates the first of the identical DLLs. For information about how to generate a key file, see [/keyfile (C# Compiler Options)](../../../csharp/language-reference/compiler-options/keyfile-compiler-option.md).
+
+```cs
+// CS1705a.cs
+
+// Compile by using the following command:
+// csc /target:library /out:C:\\CS1705.dll /keyfile:mykey.snk CS1705a.cs
+
+// The DLL is created in the C:\ directory.
+
+// The AssemblyVersion attribute specifies version 1.0 for this DLL.
+
+[assembly:System.Reflection.AssemblyVersion("1.0")]
+public class Class1
+{
+ public void Method1() {}
+}
+```
+
+## Example
+ The following code defines version 2.0 of the assembly, as specified by the attribute.
+
+```cs
+// CS1705b.cs
+
+// Compile by using the following command:
+// csc /target:library /out:CS1705.dll /keyfile:mykey.snk CS1705b.cs
+
+// The DLL is created in the current directory.
+
+// The AssemblyVersion attribute specifies version 2.0 for this DLL.
+
+[assembly:System.Reflection.AssemblyVersion("2.0")]
+public class Class1
+{
+ public void Method1() { }
+}
+
+```
+
+## Example
+ The following code references the two DLL versions that are defined in the preceding code. `AssemblyA` refers to the DLL created by CS1705a.cs (version 1.0). `AssemblyB` refers to the DLL created by CS1705b.cs (version 2.0). In `ClassC`, two methods are defined. The first, `Return1A`, returns an object of type `Class1A`, which is an alias for `Class1` from version 1.0 of the DLL. The second, `Return1B`, returns an object of type `Class1B`, which is an alias for `Class1` from version 2.0 of the DLL. The definition of `Return1A` creates a dependency on version 1.0; the definition of `Return1B` creates a dependency on version 2.0.
+
+```cs
+// CS1705c.cs
+
+// Compile by using the following command. AssemblyA refers to the DLL created by
+// CS1705a.cs (version 1.0). AssemblyB refers to the DLL created by CS1705b.cs
+// (version 2.0).
+// csc /target:library /r:AssemblyA=C:\\CS1705.dll /r:AssemblyB=CS1705.dll CS1705c.cs
+
+extern alias AssemblyA;
+extern alias AssemblyB;
+
+// Class1A is an alias for type Class1 from VS1705a.cs, which is in version 1.0
+// of the assembly. Class1B is an alias for type Class1 from CS1705b.cs, which
+// is in version 2.0 of the assembly.
+
+using Class1A = AssemblyA::Class1;
+using Class1B = AssemblyB::Class1;
+
+// Method Return1A in ClassC returns an object of type Class1A, which is
+// Class1 from version 1.0 of the DLL. Method Return1B returns an object
+// of type Class1B, which is Class1 from version 2.0 of the DLL.
+
+public class ClassC
+{
+ // The following line creates a dependency on version 1.0 of CS1705.dll.
+ // This is not the source of the problem when ClassC is accessed from
+ // CS1705d.cs because CS1705d.cs references version 1.0 of the DLL.
+ // Therefore, type Class1A and the assembly have the same version.
+ public static Class1A Return1A() { return new Class1A(); }
+
+ // The following line creates a dependency on version 2.0 of CS1705.dll.
+ // This causes compiler error CS1705 when ClassC is accessed from
+ // CS1705d.cs, because CS1705d.cs does not reference version 2.0 of the
+ // DLL. Class1B is the alias for Class1 in version 2.0, and CS1705d.cs
+ // references version 1.0.
+ public static Class1B Return1B() { return new Class1B(); }
+}
+
+```
+
+## Example
+ The following code generates compiler error CS1705. It references the DLL created by CS1705a.cs (version 1.0). However, in the `Main` method, the code accesses `ClassC` from CS1705c.cs. `ClassC` uses a type that is defined in CS1705b.cs (version 2.0). This causes compiler error CS1705 because the type has a version number for CS1705.dll that is higher than the referenced version of CS1705.dll.
+
+```cs
+// CS1705d.cs
+
+// Compile by using the following command:
+// csc /reference:C:\\CS1705.dll /reference:CS1705c.dll CS1705d.cs
+
+// C:\\CS1705.dll is version 1.0 of the assembly.
+
+class Tester
+{
+ static void Main()
+ {
+ // Return1A returns a type defined in version 1.0.
+ ClassC.Return1A().Method1();
+ // Return1B returns a type defined in version 2.0.
+ ClassC.Return1B().Method1();
+ }
+}
+
+```
+
+ You can resolve the error in one of the following ways:
+
+- Update the code so that all files use the same version of the DLL.
+
+- Add a reference to version 2.0 of the DLL to CS1705d.cs by using the following command to compile:
+
+ `csc /reference:C:\\CS1705.dll /reference:CS1705.dll /reference:CS1705c.dll CS1705d.cs`
+
+ Although the program compiles when you use this command, it still does not run. To enable the program to run, you can provide an application configuration file that includes a [\ element](http://msdn.microsoft.com/library/14e95627-dd79-4b82-ac85-e682aa3a31d8) that uses [\](http://msdn.microsoft.com/library/cea4d187-6398-4da4-af09-c1abc6a349c1) and [\](http://msdn.microsoft.com/library/d48a3983-2297-43ff-a14d-1f29d3995822) child elements to specify the location of version 1.0 of the DLL. For more information about configuration files, see [Configuring Apps](http://msdn.microsoft.com/library/86bd26d3-737e-4484-9782-19b17f34cd1f).
+
+## See Also
+ [extern alias](../../../csharp/language-reference/keywords/extern-alias.md)
+ [:: Operator](../../../csharp/language-reference/operators/namespace-alias-qualifer.md)
+ [Command-line Building With csc.exe](../../../csharp/language-reference/compiler-options/command-line-building-with-csc-exe.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1708.md b/docs/csharp/language-reference/compiler-messages/cs1708.md
new file mode 100644
index 0000000000000..a238b872afa12
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1708.md
@@ -0,0 +1,85 @@
+---
+title: "Compiler Error CS1708 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1708"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1708"
+ms.assetid: df2fc580-2de5-4dd0-9ba3-b41248de5f41
+caps.latest.revision: 14
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# Compiler Error CS1708
+Fixed size buffers can only be accessed through locals or fields
+
+ A new feature in C# 2.0 is the ability to define an in-line array inside of a `struct`. Such arrays can only be accessed via local variables or fields, and may not be referenced as intermediate values on the left-hand side of an expression. Also, the arrays cannot be accessed by fields that are `static` or `readonly`.
+
+ To resolve this error, define an array variable, and assign the in-line array to the variable. Or, remove the `static` or `readonly` modifier from the field representing the in-line array.
+
+## Example
+ The following sample generates CS1708.
+
+```cs
+// CS1708.cs
+// compile with: /unsafe
+using System;
+
+unsafe public struct S
+{
+ public fixed char name[10];
+}
+
+public unsafe class C
+{
+ public S UnsafeMethod()
+ {
+ S myS = new S();
+ return myS;
+ }
+
+ static void Main()
+ {
+ C myC = new C();
+ myC.UnsafeMethod().name[3] = 'a'; // CS1708
+ // Uncomment the following 2 lines to resolve:
+ // S myS = myC.UnsafeMethod();
+ // myS.name[3] = 'a';
+
+ // The field cannot be static.
+ C._s1.name[3] = 'a'; // CS1708
+
+ // The field cannot be readonly.
+ myC._s2.name[3] = 'a'; // CS1708
+ }
+
+ static readonly S _s1;
+ public readonly S _s2;
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1716.md b/docs/csharp/language-reference/compiler-messages/cs1716.md
new file mode 100644
index 0000000000000..fe65e45063133
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1716.md
@@ -0,0 +1,74 @@
+---
+title: "Compiler Error CS1716 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1716"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1716"
+ms.assetid: c9e65274-0cc3-41a6-967c-ac1804ecf3ba
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1716
+Do not use 'System.Runtime.CompilerServices.FixedBuffer' attribute. Use the 'fixed' field modifier instead.
+
+ This error arises in an unsafe code section that contains a fixed-size array declaration similar to a field declaration. Do not use this attribute. Instead, use the keyword `fixed`.
+
+## Example
+ The following example generates CS1716.
+
+```
+// CS1716.cs
+// compile with: /unsafe
+using System;
+using System.Runtime.CompilerServices;
+
+public struct UnsafeStruct
+{
+ [FixedBuffer(typeof(int), 4)] // CS1716
+ unsafe public int aField;
+ // Use this single line instead of the above two lines.
+ // unsafe public fixed int aField[4];
+}
+
+public class TestUnsafe
+{
+ static int Main()
+ {
+ UnsafeStruct us = new UnsafeStruct();
+ unsafe
+ {
+ if (us.aField[0] == 0)
+ return us.aField[1];
+ else
+ return us.aField[2];
+ }
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1721.md b/docs/csharp/language-reference/compiler-messages/cs1721.md
new file mode 100644
index 0000000000000..7b35da6b2f392
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1721.md
@@ -0,0 +1,66 @@
+---
+title: "Compiler Error CS1721 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1721"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1721"
+ms.assetid: f02dc9b1-8e38-4562-b013-4d752ad79061
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1721
+Class 'class' cannot have multiple base classes: 'class_1' and 'class_2'
+
+ The most common cause of this error message is attempting to use multiple inheritance. A class in C# may only inherit directly from one class. However, a class can implement any number of interfaces.
+
+## Example
+ The following example shows one way in which SC1721 is generated, and then shows two possible ways to avoid the error.
+
+```
+// CS1721.cs
+public class A {}
+public class B {}
+public class MyClass : A, B {} // CS1721
+
+// One possible fix is to use the following approach instead:
+public class A {}
+public class B : A {}
+public class C : B {}
+
+// Another possible fix is to use interfaces instead of base classes:
+public class A {}
+public interface B {}
+public class C : A, B {}
+
+```
+
+## See Also
+ [Polymorphism](../../../csharp/programming-guide/classes-and-structs/polymorphism.md)
+ [Interfaces](../../../csharp/programming-guide/interfaces/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1726.md b/docs/csharp/language-reference/compiler-messages/cs1726.md
new file mode 100644
index 0000000000000..513fe75912433
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1726.md
@@ -0,0 +1,72 @@
+---
+title: "Compiler Error CS1726 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1726"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1726"
+ms.assetid: 02b71f22-72f5-42b5-bc9e-1d5dc480cce0
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1726
+Friend assembly reference 'reference' is invalid. Strong-name signed assemblies must specify a public key in their InternalsVisibleTo declarations.
+
+ A strong name signed assembly can only grant friend assembly access, made with the , to other strongly signed assemblies.
+
+ To resolve CS1726, either sign (give a strong name to) the assembly to which you want to grant friend access, or don't grant friend access.
+
+ For more information, see [Friend Assemblies](http://msdn.microsoft.com/library/df0c70ea-2c2a-4bdc-9526-df951ad2d055).
+
+## Example
+ The following sample generates CS1726.
+
+```
+
+// Save this code as CS1726.cs
+
+// Run the following command to create CS1726.key:
+// sn -k CS1726.key
+
+// Then compile by using the following command:
+// csc /keyfile:CS1726.key /target:library CS1726.cs
+
+using System.Runtime.CompilerServices;
+
+// The following line causes compiler error CS1726.
+[assembly: InternalsVisibleTo("UnsignedAssembly")]
+
+// To get rid of the error, try the following line instead.
+//[assembly: InternalsVisibleTo("SignedAssembly, PublicKey=0024000004800000940000000602000000240000525341310004000001000100031d7b6f3abc16c7de526fd67ec2926fe68ed2f9901afbc5f1b6b428bf6cd9086021a0b38b76bc340dc6ab27b65e4a593fa0e60689ac98dd71a12248ca025751d135df7b98c5f9d09172f7b62dabdd302b2a1ae688731ff3fc7a6ab9e8cf39fb73c60667e1b071ef7da5838dc009ae0119a9cbff2c581fc0f2d966b77114b2c4")]
+
+class A { }
+```
+
+## See Also
+ [How to: Create Signed Friend Assemblies](http://msdn.microsoft.com/library/f5542300-58b4-4e1c-b809-8df11e95e69b)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1729.md b/docs/csharp/language-reference/compiler-messages/cs1729.md
new file mode 100644
index 0000000000000..9e53a5f098e13
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1729.md
@@ -0,0 +1,100 @@
+---
+title: "Compiler Error CS1729 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1729"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1729"
+ms.assetid: 69d24ae0-eaca-4fbf-a5f3-70791f43f97a
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1729
+'type' does not contain a constructor that takes 'number' arguments.
+
+ This error occurs when you either directly or indirectly invoke the constructor of a class but the compiler cannot find any constructors with the same number of parameters. In the following example, the `test` class has no constructors that take any arguments. It therefore has only a default constructor that takes zero arguments. Because in the second line in which the error is generated, the derived class declares no constructors of its own, the compiler provides a default constructor. That constructor invokes a parameterless constructor in the base class. Because the base class has no such constructor, CS1729 is generated.
+
+## To correct this error
+
+1. Adjust the number of parameters in the call to the constructor.
+
+2. Modify the class to provide a constructor with the parameters you must call.
+
+3. Provide a parameterless constructor in the base class.
+
+## Example
+ The following example generates CS1729:
+
+```cs
+// cs1729.cs
+class Test
+{
+ static int Main()
+ {
+ // Class Test has only a default constructor, which takes no arguments.
+ Test test1 = new Test(2); // CS1729
+ // The following line resolves the error.
+ Test test2 = new Test();
+
+ // Class Parent has only one constructor, which takes two int parameters.
+ Parent exampleParent1 = new Parent(10); // CS1729
+ // The following line resolves the error.
+ Parent exampleParent2 = new Parent(10, 1);
+
+ return 1;
+ }
+}
+
+public class Parent
+{
+ // The only constructor for this class has two parameters.
+ public Parent(int i, int j) { }
+}
+
+// The following declaration causes a compiler error because class Parent
+// does not have a constructor that takes no arguments. The declaration of
+// class Child2 shows how to resolve this error.
+public class Child : Parent { } // CS1729
+
+public class Child2 : Parent
+{
+ // The constructor for Child2 has only one parameter. To access the
+ // constructor in Parent, and prevent this compiler error, you must provide
+ // a value for the second parameter of Parent. The following example provides 0.
+ public Child2(int k)
+ : base(k, 0)
+ {
+ // Add the body of the constructor here.
+ }
+}
+```
+
+## See Also
+ [Inheritance](../../../csharp/programming-guide/classes-and-structs/inheritance.md)
+ [Constructors](../../../csharp/programming-guide/classes-and-structs/constructors.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1762.md b/docs/csharp/language-reference/compiler-messages/cs1762.md
new file mode 100644
index 0000000000000..e2bee61bc1501
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1762.md
@@ -0,0 +1,54 @@
+---
+title: "Compiler Warning (level 1) CS1762 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1762"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1762"
+ms.assetid: 181d9063-e8a1-413d-8f0d-d05018642136
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1762
+A reference was created to embedded interop assembly '\' because of an indirect reference to that assembly from assembly '\'. Consider changing the 'Embed Interop Types' property on either assembly.
+
+ You have added a reference to an assembly (assembly1) that has the `Embed Interop Types` property set to `True`. This instructs the compiler to embed interop type information from that assembly. However, the compiler cannot embed interop type information from that assembly because another assembly that you have referenced (assembly2) also references that assembly (assembly1) and has the `Embed Interop Types` property set to `False`.
+
+> [!NOTE]
+> Setting the `Embed Interop Types` property on an assembly reference to `True` is equivalent to referencing the assembly by using the `/link` option for the command-line compiler.
+
+### To address this warning
+
+- To embed interop type information for both assemblies, set the `Embed Interop Types` property on all references to assembly1 to `True`. For more information about how to set that property, see [Walkthrough: Embedding Types from Managed Assemblies](http://msdn.microsoft.com/library/b28ec92c-1867-4847-95c0-61adfe095e21).
+
+- To remove the warning, you can set the `Embed Interop Types` property of assembly1 to `False`. In this case, a primary interop assembly (PIA) provides interop type information.
+
+## See Also
+ [/link (C# Compiler Options)](../../../csharp/language-reference/compiler-options/link-compiler-option.md)
+ [Programming with Primary Interop Assemblies](http://msdn.microsoft.com/en-us/306fa1d6-0703-4004-9e93-d0a57f1be81e)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1919.md b/docs/csharp/language-reference/compiler-messages/cs1919.md
new file mode 100644
index 0000000000000..8b935491f2989
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1919.md
@@ -0,0 +1,67 @@
+---
+title: "Compiler Error CS1919 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1919"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1919"
+ms.assetid: 5d1e468b-ddec-4edd-a8b1-9c65c2332778
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1919
+Unsafe type 'type name' cannot be used in object creation.
+
+ The `new` operator creates objects only on the managed heap. However, you can create objects in unmanaged memory indirectly by using the interoperability capabilities of the language to call native methods that return pointers.
+
+## To correct this error
+
+1. Use a safe type in the new object creation expression. For example, use `char` or `int` instead of `char*` or `int*`.
+
+2. If you must create objects in unmanaged memory, use a Win32 or COM method or else write your own function in C or C++ and call it from C#.
+
+## Example
+ The following example generates CS1919 because a pointer type is unsafe:
+
+```
+// cs1919.cs
+// Compile with: /unsafe
+unsafe public class C
+{
+ public static int Main()
+ {
+ var col1 = new int* { }; // CS1919
+ var col2 = new char* { }; // CS1919
+ return 1;
+ }
+}
+```
+
+## See Also
+ [Interoperability](../../../csharp/programming-guide/interop/interoperability.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1921.md b/docs/csharp/language-reference/compiler-messages/cs1921.md
new file mode 100644
index 0000000000000..c86c927a8b0ce
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1921.md
@@ -0,0 +1,65 @@
+---
+title: "Compiler Error CS1921 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1921"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1921"
+ms.assetid: 0e8326dc-4ad9-49b6-948c-d37f10e6abaf
+caps.latest.revision: 6
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1921
+The best overloaded method match for 'method' has wrong signature for the initializer element. The initializable Add must be an accessible instance method.
+
+ This error is generated when you try to use a collection initializer with a class that has no public non-static `Add` method. If the `Add` method is not accessible because of its protection level (`private`, `protected`, `internal`) then you will get CS0122, so that this error probably means that the method is defined as `static`.
+
+## Example
+ The following example generates CS1921:
+
+```
+// cs1921.cs
+using System.Collections;
+public class C : CollectionBase
+{
+ public static void Add(int i)
+ {
+ }
+}
+public class Test
+{
+ public static void Main()
+ {
+ var collection = new C { 1, 2, 3 }; // CS1921
+ }
+}
+```
+
+## See Also
+ [Object and Collection Initializers](../../../csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1926.md b/docs/csharp/language-reference/compiler-messages/cs1926.md
new file mode 100644
index 0000000000000..dfc3620fb9d80
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1926.md
@@ -0,0 +1,70 @@
+---
+title: "Compiler Error CS1926 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1926"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1926"
+ms.assetid: 58cc8385-8d92-4cee-8941-d05e128e3674
+caps.latest.revision: 5
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1926
+Error reading Win32 manifest file 'filename' -- 'error'.
+
+ This error is generated when the following conditions are true:
+
+1. The **/win32manifest** option is specified either on the command line or by right-clicking the **Project** icon in **Solution Explorer**, pointing to **Add**, clicking **New Item**, and then clicking **Application Manifest File**.
+
+2. The file is either corrupted or missing.
+
+## To correct this error
+
+1. Remove the option.
+
+2. Replace, repair, or regenerate the file.
+
+## Example
+ The following example generates CS1926 when it is compiled with a corrupted for missing win32 manifest file:
+
+```
+// cs1926.cs
+// Compile with: /win32manifest: ../../app.manifest
+// CS1926
+class Test
+{
+ public static int Main()
+ {
+ return 1;
+ }
+}
+```
+
+## See Also
+ [/win32manifest (C# Compiler Options)](../../../csharp/language-reference/compiler-options/win32manifest-compiler-option.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1933.md b/docs/csharp/language-reference/compiler-messages/cs1933.md
new file mode 100644
index 0000000000000..c47e8718cdbfc
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1933.md
@@ -0,0 +1,66 @@
+---
+title: "Compiler Error CS1933 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1933"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1933"
+ms.assetid: 80d719d3-1b39-44ec-90fd-039ae5570f01
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1933
+Expression cannot contain query expressions
+
+ Some variables cannot be initialized with a query expression. Constants cannot be initialized with query expressions because constants may only be initialized with some combination of literals, named constants, and mathematical operators.
+
+## To correct this error
+
+1. Remove the modifier from the query variable.
+
+## Example
+ The following example generates CS1933:
+
+```
+// cs1933.cs
+using System.Linq;
+using System.Collections;
+
+class P
+{
+ const IEnumerable e = from x in new[] { 1, 2, 3 } select x; // CS1933
+ static int Main()
+ {
+ return 1;
+ }
+}
+```
+
+## See Also
+ [LINQ Query Expressions](../../../csharp/programming-guide/linq-query-expressions/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1936.md b/docs/csharp/language-reference/compiler-messages/cs1936.md
new file mode 100644
index 0000000000000..33da25092cf0f
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1936.md
@@ -0,0 +1,71 @@
+---
+title: "Compiler Error CS1936 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1936"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1936"
+ms.assetid: 980161b5-5bd7-4cb5-8b66-9bcbb062a8e6
+caps.latest.revision: 6
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1936
+Could not find an implementation of the query pattern for source type 'type'. 'method' not found.
+
+ In order to query a source type, that type must implement the standard query operator methods that you are invoking in the query. The implementation can be either in the form of class members or extension methods that are brought into scope with the appropriate `using` directive.
+
+## To correct this error
+
+- Make sure that you are querying a collection of objects, not an individual object.
+
+- Make sure that you have specified the necessary `using` directives.
+
+## Example
+ The following example produces CS1936:
+
+```
+// cs1936.cs
+using System.Collections;
+using System.Linq;
+class Test
+{
+ static int Main()
+ {
+ object obj;
+ IEnumerable e = from x in obj // CS1936
+ select x;
+ return 0;
+ }
+}
+```
+
+ This error typically occurs when you accidentally try to query an object of some type instead of a collection of those objects.
+
+## See Also
+ [Standard Query Operators Overview](http://msdn.microsoft.com/library/24cda21e-8af8-4632-b519-c404a839b9b2)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1941.md b/docs/csharp/language-reference/compiler-messages/cs1941.md
new file mode 100644
index 0000000000000..8738721c3a869
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1941.md
@@ -0,0 +1,72 @@
+---
+title: "Compiler Error CS1941 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1941"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1941"
+ms.assetid: 503054d6-9553-4a2a-9b68-4ccfdeccca22
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1941
+The type of one of the expressions in the 'clause' clause is incorrect. Type inference failed in the call to 'method'.
+
+ Type inference in query expressions flows from the type of the elements in the data source(s).
+
+## To correct this error
+
+1. If it is not immediately obvious why the error is occurring, examine the query carefully and trace the type of the result of each clause from the data source to the point where the error is occurring.
+
+## Example
+ The following code generates CS1941 because the `equals` operator is being asked to compare an `int` to a `string`.
+
+```
+// cs1941.cs
+using System.Collections;
+using System.Linq;
+class Test
+{
+ static int Main()
+ {
+ var nums = new[] { 1, 2, 3, 4, 5, 6 };
+ var words = new string[] { "lake", "mountain", "sky" };
+ IEnumerable e = from n in nums
+ join w in words on n equals w // CS1941
+ select w;
+ return 0;
+ }
+}
+```
+
+ The method in which type inference fails is the method that the query clause is translated to at compile time.
+
+## See Also
+ [LINQ Query Expressions](../../../csharp/programming-guide/linq-query-expressions/index.md)
+ [Type Relationships in LINQ Query Operations](../../../csharp/programming-guide/concepts/linq/type-relationships-in-linq-query-operations.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1942.md b/docs/csharp/language-reference/compiler-messages/cs1942.md
new file mode 100644
index 0000000000000..98d69a34731fa
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1942.md
@@ -0,0 +1,66 @@
+---
+title: "Compiler Error CS1942 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1942"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1942"
+ms.assetid: afbe5e8e-1944-416e-916b-39e2c373814b
+caps.latest.revision: 5
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1942
+The type of the expression in the 'clause' clause is incorrect. Type inference failed in the call to 'method'.
+
+ This error is typically generated when the range variable has been given an incorrect explicit type.
+
+## To correct this error
+
+1. If the range variable is explicitly typed, make sure that the type is either the same as, or implicitly convertible from, the type of the elements in the collection it iterates. If the range variable is preceded with the `var` keyword, remove `var`.
+
+## Example
+ The following code generates CS1942:
+
+```
+// cs1942.cs
+class Program
+ {
+ static void Main(string[] args)
+ {
+ var x = from var i in Enumerable.Range(1, 100) // CS1949
+ select i; //CS1942
+ }
+ }
+```
+
+ CS1942 is related to CS1949 because the use of `var` with a range variable causes the underlying `Cast` operation to fail because `var` is not a type.
+
+## See Also
+ [var](../../../csharp/language-reference/keywords/var.md)
+ [LINQ Query Expressions](../../../csharp/programming-guide/linq-query-expressions/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1943.md b/docs/csharp/language-reference/compiler-messages/cs1943.md
new file mode 100644
index 0000000000000..34bb8f08b8e9e
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1943.md
@@ -0,0 +1,69 @@
+---
+title: "Compiler Error CS1943 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1943"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1943"
+ms.assetid: eb3e36b7-1372-471c-8cfb-a955a86c379e
+caps.latest.revision: 5
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1943
+An expression of type 'type' is not allowed in a subsequent from clause in a query expression with source type 'type'. Type inference failed in the call to 'method'.
+
+ All range variables must represent queryable types.
+
+## To correct this error
+
+1. Make sure that the type is a queryable type that implements `IEnumerable`, `IEnumerable` or a derived interface, or any other type which has a query pattern defined for it.
+
+2. If the type is a non-generic `IEnumerable`, provide an explicit type on the range variable.
+
+## Example
+ The following code generates CS1943:
+
+```
+// cs1943.cs
+using System.Linq;
+class Test
+{
+ class TestClass
+ { }
+ static void Main()
+ {
+ int[] nums = { 0, 1, 2, 3, 4, 5 };
+ TestClass tc = new TestClass();
+
+ var x = from n in nums
+ from s in tc // CS1943
+ select n + s;
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1946.md b/docs/csharp/language-reference/compiler-messages/cs1946.md
new file mode 100644
index 0000000000000..3acd86379f3a6
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1946.md
@@ -0,0 +1,70 @@
+---
+title: "Compiler Error CS1946 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1946"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1946"
+ms.assetid: 4ccef263-1ae8-4065-ab46-25d14a38e24e
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS1946
+An anonymous method expression cannot be converted to an expression tree.
+
+ An anonymous method represents a set of statements but an expression tree must not contain a statement. Therefore an anonymous method cannot be represented by an expression tree.
+
+## To correct this error
+
+1. Change the anonymous method to a lambda expression.
+
+## Example
+ The following example generates CS1946:
+
+```
+// cs1946.cs
+using System;
+ using System.Linq.Expressions;
+
+ public delegate void D();
+
+ class Test
+ {
+ static void Main()
+ {
+ Expression tree = delegate() { }; //CS1946
+ // Try using a lambda expression instead.
+ // Expression tree = (x) => x + 1;
+ }
+ }
+```
+
+## See Also
+ [Anonymous Methods](../../../csharp/programming-guide/statements-expressions-operators/anonymous-methods.md)
+ [Expression Trees](http://msdn.microsoft.com/library/fb1d3ed8-d5b0-4211-a71f-dd271529294b)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs1956.md b/docs/csharp/language-reference/compiler-messages/cs1956.md
new file mode 100644
index 0000000000000..96505f895fcfe
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs1956.md
@@ -0,0 +1,84 @@
+---
+title: "Compiler Warning (level 1) CS1956 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS1956"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS1956"
+ms.assetid: 841f8b2b-692b-49ae-a587-a40797cf9797
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS1956
+Member 'name' implements interface member 'name' in type 'type'. There are multiple matches for the interface member at run-time. It is implementation dependent which method will be called.
+
+ This warning can be generated when two interface methods are differentiated only by whether a particular parameter is marked with `ref` or with `out`. It is best to change your code to avoid this warning because it is not obvious or guaranteed which method is called at runtime.
+
+ Although C# distinguishes between `out` and `ref`, the CLR sees them as the same. When deciding which method implements the interface, the CLR just picks one.
+
+### To avoid this warning
+
+1. Give the compiler some way to differentiate the methods. For example, you can give them different names or provide an additional parameter on one of them.
+
+## Example
+ The following code generates CS1956 because the two `Test` methods in `Base` differ only by the `ref`/`out` modifier on the first parameter.
+
+```cs
+// cs1956.cs
+class Base
+{
+ // This is the method that should be called.
+ public virtual int Test(out T x) // CS1956
+ {
+ x = default(T);
+ return 0;
+ }
+
+ // This is the "last" method and is the one that ends up being called
+ public virtual int Test(ref S x)
+ {
+ return 1;
+ }
+}
+
+interface IFace
+{
+ int Test(out int x);
+}
+
+class Derived : Base, IFace
+{
+ static int Main()
+ {
+ IFace x = new Derived();
+ int y;
+ return x.Test(out y);
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs2032.md b/docs/csharp/language-reference/compiler-messages/cs2032.md
new file mode 100644
index 0000000000000..d1ceedb01c073
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs2032.md
@@ -0,0 +1,63 @@
+---
+title: "Compiler Error CS2032 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS2032"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS2032"
+ms.assetid: 534e2d2f-d209-43dd-abc9-e5ea5b01efc4
+caps.latest.revision: 14
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Error CS2032
+Character 'character' is not allowed on the command-line or in response files
+
+ Response files and the command line options for csc.exe cannot contain ASCII control characters in the range 0-31 or the pipe (`|`) character.
+
+ Compiler error CS2032 is difficult to demonstrate from the command line because the command line processor and the integrated development environment (IDE) filter out characters that are not valid. The following procedure generates the error by using a [response file](../../../csharp/language-reference/compiler-options/response-file-compiler-option.md).
+
+### To generate this error
+
+1. In the **My Documents** folder, create a text file that is named CS2032.rsp, and then enter the following compiler options in it:
+
+ ```cs
+ /target:exe /out:cs|2032.exe cs2032.cs
+ ```
+
+2. In the **My Documents** folder, create a text file that is named cs2032.cs and that contains whatever you want.
+
+3. Open **Start**, and then choose **All Programs**, **Microsoft Visual Studio 2010**, **Visual Studio Tools**, **Visual Studio Command Prompt**.
+
+ The **Visual Studio Command Prompt** window opens.
+
+4. In the **Visual Studio Command Prompt** window, change the current directory to C:\Users\\*YourUsername*\Documents.
+
+5. Run the following command from the **Visual Studio Command Prompt**: `csc @cs2032.rsp`
+
+6. The CS2032 error message appears because the response file, CS2032.rsp, contains a pipe character.
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs3003.md b/docs/csharp/language-reference/compiler-messages/cs3003.md
new file mode 100644
index 0000000000000..d8e7b8dcb2728
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs3003.md
@@ -0,0 +1,57 @@
+---
+title: "Compiler Warning (level 1) CS3003 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS3003"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS3003"
+ms.assetid: 1845508d-e97f-4bef-b94c-9f14cfc8bdb3
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS3003
+Type of 'variable' is not CLS-compliant
+
+ A [public](../../../csharp/language-reference/keywords/public.md), [protected](../../../csharp/language-reference/keywords/protected.md), or `protected internal` variable must be of a type that is compliant with the Common Language Specification (CLS). For more information on CLS Compliance, see [Language Independence and Language-Independent Components](https://msdn.microsoft.com/library/12a7a7h3).
+
+## Example
+ The following example generates CS3003:
+
+```
+// CS3003.cs
+
+[assembly:System.CLSCompliant(true)]
+public class a
+{
+ public ushort a1; // CS3003, public variable
+ public static void Main()
+ {
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs3007.md b/docs/csharp/language-reference/compiler-messages/cs3007.md
new file mode 100644
index 0000000000000..fdbc110bf768f
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs3007.md
@@ -0,0 +1,60 @@
+---
+title: "Compiler Warning (level 1) CS3007 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS3007"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS3007"
+ms.assetid: 9c6bf776-3099-4ab5-ae89-4068ec722f79
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS3007
+Overloaded method 'method' differing only by unnamed array types is not CLS-compliant
+
+ This error occurs if you have an overloaded method that takes a jagged array and the only difference between the method signatures is the element type of the array. To avoid this error, consider using a rectangular array rather than a jagged array; use an additional parameter to disambiguate the function call; rename one or more of the overloaded methods; or, if CLS Compliance is not needed, remove the attribute. For more information on CLS Compliance, see [Language Independence and Language-Independent Components](https://msdn.microsoft.com/library/12a7a7h3).
+
+## Example
+ The following example generates CS3007:
+
+```
+// CS3007.cs
+[assembly: System.CLSCompliant(true)]
+public struct S
+{
+ public void F(int[][] array) { }
+ public void F(byte[][] array) { } // CS3007
+ // Try this instead:
+ // public void F1(int[][] array) {}
+ // public void F2(byte[][] array) {}
+ // or
+ // public void F(int[,] array) {}
+ // public void F(byte[,] array) {}
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs3009.md b/docs/csharp/language-reference/compiler-messages/cs3009.md
new file mode 100644
index 0000000000000..9bfecc99644a6
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs3009.md
@@ -0,0 +1,61 @@
+---
+title: "Compiler Warning (level 1) CS3009 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS3009"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS3009"
+ms.assetid: 41a1d2c4-d558-4066-8f3f-e9d2d69298a8
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Compiler Warning (level 1) CS3009
+'type': base type 'type' is not CLS-compliant
+
+ A base type was marked as not having to be compliant with the Common Language Specification (CLS) in an assembly that was marked as being CLS compliant. Either remove the attribute that specifies the assembly is CLS compliant or remove the attribute that indicates the type is not CLS compliant. For more information on CLS Compliance, see [Writing CLS-Compliant Code](http://msdn.microsoft.com/en-us/4c705105-69a2-4e5e-b24e-0633bc32c7f3) and [Language Independence and Language-Independent Components](https://msdn.microsoft.com/library/12a7a7h3).
+
+## Example
+ The following example generates CS3009:
+
+```
+// CS3009.cs
+
+using System;
+
+[assembly:CLSCompliant(true)]
+[CLSCompliant(false)]
+public class B
+{
+}
+
+public class C : B // CS3009
+{
+ public static void Main () {}
+}
+```
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/cs4014.md b/docs/csharp/language-reference/compiler-messages/cs4014.md
new file mode 100644
index 0000000000000..b85b96be90b6e
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/cs4014.md
@@ -0,0 +1,258 @@
+---
+title: "Compiler Warning (level 1) CS4014 | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+f1_keywords:
+ - "CS4014"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "CS4014"
+ms.assetid: b9e7c029-eaa9-48d7-8b3c-9823772c9acb
+caps.latest.revision: 26
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# Compiler Warning (level 1) CS4014
+Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call.
+
+ The current method calls an async method that returns a or a and doesn’t apply the [await](../../../csharp/language-reference/keywords/await.md) operator to the result. The call to the async method starts an asynchronous task. However, because no `await` operator is applied, the program continues without waiting for the task to complete. In most cases, that behavior isn't what you expect. Usually other aspects of the calling method depend on the results of the call or, minimally, the called method is expected to complete before you return from the method that contains the call.
+
+ An equally important issue is what happens to exceptions that are raised in the called async method. An exception that's raised in a method that returns a or is stored in the returned task. If you don't await the task or explicitly check for exceptions, the exception is lost. If you await the task, its exception is rethrown.
+
+ As a best practice, you should always await the call.
+
+ You should consider suppressing the warning only if you're sure that you don't want to wait for the asynchronous call to complete and that the called method won't raise any exceptions. In that case, you can suppress the warning by assigning the task result of the call to a variable.
+
+ The following example shows how to cause the warning, how to suppress it, and how to await the call.
+
+```cs
+
+async Task CallingMethodAsync()
+{
+ resultsTextBox.Text += "\r\n Entering calling method.";
+ // Variable delay is used to slow down the called method so that you can
+ // distinguish between awaiting and not awaiting in the program's output.
+ // You can adjust the value to produce the output that this topic shows
+ // after the code.
+ var delay = 5000;
+
+ // Call #1.
+ // Call an async method. Because you don't await it, its completion
+ // isn't coordinated with the current method, CallingMethodAsync.
+ // The following line causes warning CS4014.
+ CalledMethodAsync(delay);
+
+ // Call #2.
+ // To suppress the warning without awaiting, you can assign the
+ // returned task to a variable. The assignment doesn't change how
+ // the program runs. However, recommended practice is always to
+ // await a call to an async method.
+
+ // Replace Call #1 with the following line.
+ //Task delayTask = CalledMethodAsync(delay);
+
+ // Call #3
+ // To contrast with an awaited call, replace the unawaited call
+ // (Call #1 or Call #2) with the following awaited call. Best
+ // practice is to await the call.
+
+ //await CalledMethodAsync(delay);
+
+ // If the call to CalledMethodAsync isn't awaited, CallingMethodAsync
+ // continues to run and, in this example, finishes its work and returns
+ // to its caller.
+ resultsTextBox.Text += "\r\n Returning from calling method.";
+}
+
+async Task CalledMethodAsync(int howLong)
+{
+ resultsTextBox.Text +=
+ "\r\n Entering called method, starting and awaiting Task.Delay.";
+
+ // Slow the process down a little so that you can distinguish between
+ // awaiting and not awaiting in the program's output. Adjust the value
+ // for howLong if necessary.
+ await Task.Delay(howLong);
+ resultsTextBox.Text +=
+ "\r\n Task.Delay is finished--returning from called method.";
+}
+```
+
+ In the example, if you choose Call #1 or Call #2, the unawaited async method (`CalledMethodAsync`) finishes after both its caller (`CallingMethodAsync`) and the caller's caller (`startButton_Click`) are complete. The last line in the following output shows you when the called method finishes. Entry to and exit from the event handler that calls `CallingMethodAsync` in the full example are marked in the output.
+
+```
+
+Entering the Click event handler.
+ Entering calling method.
+ Entering called method, starting and awaiting Task.Delay.
+ Returning from calling method.
+Exiting the Click event handler.
+ Task.Delay is finished--returning from called method.
+```
+
+ You can also suppress compiler warnings by using [#pragma warning](../../../csharp/language-reference/preprocessor-directives/preprocessor-pragma-warning.md) directives.
+
+## Example
+ The following Windows Presentation Foundation (WPF) application contains the methods from the previous example. The following steps set up the application.
+
+1. Create a WPF application, and name it `AsyncWarning`.
+
+2. In the Visual Studio Code Editor, choose the **MainWindow.xaml** tab.
+
+ If the tab isn't visible, open the shortcut menu for MainWindow.xaml in **Solution Explorer**, and then choose **View Code**.
+
+3. Replace the code in the **XAML** view of MainWindow.xaml with the following code.
+
+ ```cs
+
+
+
+
+
+
+ ```
+
+ A simple window that contains a button and a text box appears in the **Design** view of MainWindow.xaml.
+
+ For more information about the XAML Designer, see [Creating a UI by using XAML Designer](/visualstudio/designers/creating-a-ui-by-using-xaml-designer-in-visual-studio). For information about how to build your own simple UI, see the "To create a WPF application" and "To design a simple WPF MainWindow" sections of [Walkthrough: Accessing the Web by Using Async and Await](http://msdn.microsoft.com/library/25879a6d-fdee-4a38-bc98-bb8c24d16042).
+
+4. Replace the code in MainWindow.xaml.cs with the following code.
+
+ ```cs
+ using System;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Text;
+ using System.Threading.Tasks;
+ using System.Windows;
+ using System.Windows.Controls;
+ using System.Windows.Data;
+ using System.Windows.Documents;
+ using System.Windows.Input;
+ using System.Windows.Media;
+ using System.Windows.Media.Imaging;
+ using System.Windows.Navigation;
+ using System.Windows.Shapes;
+
+ namespace AsyncWarning
+ {
+ public partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ }
+
+ private async void startButton_Click(object sender, RoutedEventArgs e)
+ {
+ resultsTextBox.Text += "\r\nEntering the Click event handler.";
+ await CallingMethodAsync();
+ resultsTextBox.Text += "\r\nExiting the Click event handler.";
+ }
+
+ async Task CallingMethodAsync()
+ {
+ resultsTextBox.Text += "\r\n Entering calling method.";
+ // Variable delay is used to slow down the called method so that you can
+ // distinguish between awaiting and not awaiting in the program's output.
+ // You can adjust the value to produce the output that this topic shows
+ // after the code.
+ var delay = 5000;
+
+ // Call #1.
+ // Call an async method. Because you don't await it, its completion
+ // isn't coordinated with the current method, CallingMethodAsync.
+ // The following line causes warning CS4014.
+ CalledMethodAsync(delay);
+
+ // Call #2.
+ // To suppress the warning without awaiting, you can assign the
+ // returned task to a variable. The assignment doesn't change how
+ // the program runs. However, recommended practice is always to
+ // await a call to an async method.
+
+ // Replace Call #1 with the following line.
+ //Task delayTask = CalledMethodAsync(delay);
+
+ // Call #3
+ // To contrast with an awaited call, replace the unawaited call
+ // (Call #1 or Call #2) with the following awaited call. Best
+ // practice is to await the call.
+
+ //await CalledMethodAsync(delay);
+
+ // If the call to CalledMethodAsync isn't awaited, CallingMethodAsync
+ // continues to run and, in this example, finishes its work and returns
+ // to its caller.
+ resultsTextBox.Text += "\r\n Returning from calling method.";
+ }
+
+ async Task CalledMethodAsync(int howLong)
+ {
+ resultsTextBox.Text +=
+ "\r\n Entering called method, starting and awaiting Task.Delay.";
+
+ // Slow the process down a little so that you can distinguish between
+ // awaiting and not awaiting in the program's output. Adjust the value
+ // for howLong if necessary.
+ await Task.Delay(howLong);
+ resultsTextBox.Text +=
+ "\r\n Task.Delay is finished--returning from called method.";
+ }
+ }
+
+ // Output with Call #1 or Call #2. (Wait for the last line to appear.)
+
+ // Entering the Click event handler.
+ // Entering calling method.
+ // Entering called method, starting and awaiting Task.Delay.
+ // Returning from calling method.
+ // Exiting the Click event handler.
+ // Task.Delay is finished--returning from called method.
+
+ // Output with Call #3, which awaits the call to CalledMethodAsync.
+
+ // Entering the Click event handler.
+ // Entering calling method.
+ // Entering called method, starting and awaiting Task.Delay.
+ // Task.Delay is finished--returning from called method.
+ // Returning from calling method.
+ // Exiting the Click event handler.
+ }
+
+ ```
+
+5. Choose the F5 key to run the program, and then choose the **Start** button.
+
+ The expected output appears at the end of the code.
+
+## See Also
+ [await](../../../csharp/language-reference/keywords/await.md)
+ [Asynchronous Programming with async and await](../../../csharp/programming-guide/concepts/async/asynchronous-programming-with-async-and-await.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/includes/csprcsext_md.md b/docs/csharp/language-reference/compiler-messages/includes/csprcsext_md.md
new file mode 100644
index 0000000000000..f516825b781b4
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/includes/csprcsext_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Microsoft Visual C# 2005
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/includes/note_settings_general_md.md b/docs/csharp/language-reference/compiler-messages/includes/note_settings_general_md.md
new file mode 100644
index 0000000000000..dbf0d4106955c
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/includes/note_settings_general_md.md
@@ -0,0 +1,3 @@
+
+> [!NOTE]
+> Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. The Visual Studio edition that you have and the settings that you use determine these elements. For more information, see [Personalizing the IDE](/visualstudio/ide/personalizing-the-visual-studio-ide).
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/includes/vsprvsext_md.md b/docs/csharp/language-reference/compiler-messages/includes/vsprvsext_md.md
new file mode 100644
index 0000000000000..23872c10a94e9
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/includes/vsprvsext_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Microsoft Visual Studio 2005
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-messages/index.md b/docs/csharp/language-reference/compiler-messages/index.md
new file mode 100644
index 0000000000000..12fae3f9e8900
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/index.md
@@ -0,0 +1,59 @@
+---
+title: "C# Compiler Errors | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "error-reference"
+dev_langs:
+ - "CSharp"
+ - "CSharp"
+helpviewer_keywords:
+ - "C# language, compiler errors"
+ - "Visual C# compiler, errors"
+ - "errors [C#]"
+ms.assetid: 57262ab1-6c50-4f9c-81ad-9fba48477416
+caps.latest.revision: 23
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# C# Compiler Errors
+Some C# compiler errors have corresponding topics that explain why the error is generated, and, in some cases, how to fix the error. Use one of the following steps to see whether help is available for a particular error message.
+
+- Find the error number (for example, CS0029) in the [Output Window](/visualstudio/ide/reference/output-window), and then search for it on MSDN.
+
+- Choose the error number (for example, CS0029) in the [Output Window](/visualstudio/ide/reference/output-window), and then choose the F1 key.
+
+- In the Index, enter the error number in the **Look for** box.
+
+ If none of these steps leads to information about your error, go to the end of this page, and send feedback that includes the number or text of the error.
+
+ For information about how to configure error and warning options in C#, see [Build Page, Project Designer (C#)](/visualstudio/ide/reference/build-page-project-designer-csharp).
+
+[!INCLUDE[note_settings_general](../../../csharp/language-reference/compiler-messages/includes/note_settings_general_md.md)]
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [Sorry, we don't have specifics on this C# error](../../../csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md)
+ [Build Page, Project Designer (C#)](/visualstudio/ide/reference/build-page-project-designer-csharp)
+ [/warn (C# Compiler Options)](../../../csharp/language-reference/compiler-options/warn-compiler-option.md)
+ [/nowarn (C# Compiler Options)](../../../csharp/language-reference/compiler-options/nowarn-compiler-option.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/addmodule-compiler-option.md b/docs/csharp/language-reference/compiler-options/addmodule-compiler-option.md
new file mode 100644
index 0000000000000..a44cbe1747d2f
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/addmodule-compiler-option.md
@@ -0,0 +1,73 @@
+---
+title: "-addmodule (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/addmodule"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/addmodule compiler option [C#]"
+ - "-addmodule compiler option [C#]"
+ - "addmodule compiler option [C#]"
+ms.assetid: ed604546-0dc2-4bd4-9a3e-610a8d973e58
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /addmodule (C# Compiler Options)
+This option adds a module that was created with the target:module switch to the current compilation.
+
+## Syntax
+
+```
+/addmodule:file[;file2]
+```
+
+## Arguments
+ `file`, `file2`
+ An output file that contains metadata. The file cannot contain an assembly manifest. To import more than one file, separate file names with either a comma or a semicolon.
+
+## Remarks
+ All modules added with **/addmodule** must be in the same directory as the output file at run time. That is, you can specify a module in any directory at compile time but the module must be in the application directory at run time. If the module is not in the application directory at run time, you will get a .
+
+ `file` cannot contain an assembly. For example, if the output file was created with [/target:module](../../../csharp/language-reference/compiler-options/target-module-compiler-option.md), its metadata can be imported with **/addmodule**.
+
+ If the output file was created with a **/target** option other than **/target:module**, its metadata cannot be imported with **/addmodule** but can be imported with [/reference](../../../csharp/language-reference/compiler-options/reference-compiler-option.md).
+
+ This compiler option is unavailable in Visual Studio; a project cannot reference a module. In addition, this compiler option cannot be changed programmatically.
+
+## Example
+ Compile source file `input.cs` and add metadata from `metad1.netmodule` and `metad2.netmodule` to produce `out.exe`:
+
+```
+csc /addmodule:metad1.netmodule;metad2.netmodule /out:out.exe input.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
+ [Multifile Assemblies](http://msdn.microsoft.com/library/13509e73-db77-4645-8165-aad8dfaedff6)
+ [How to: Build a Multifile Assembly](http://msdn.microsoft.com/library/261c5583-8a76-412d-bda7-9b8ee3b131e5)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/app-deployment.md b/docs/csharp/language-reference/compiler-options/app-deployment.md
new file mode 100644
index 0000000000000..ba3e1ba1ce688
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/app-deployment.md
@@ -0,0 +1,48 @@
+---
+title: "Deployment of C# Applications | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+ - "CSharp"
+helpviewer_keywords:
+ - "deploying applications [C#]"
+ - "Visual C#, deployment"
+ - "C# language, deployment"
+ - "application deployment [C#]"
+ms.assetid: 5c561a21-cc5b-4180-8042-391062af0015
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Deployment of C# Applications
+After you have completed building your C# application, the next step is to distribute it. C# is a .NET language; therefore, distributing any C# executables to other machines requires the .NET Framework to be installed on each execution machine (and possibly other dependencies specific to your application). You have a variety of options available for distributing the .NET Framework. For an overview, see [Deployment Guide for Developers](https://msdn.microsoft.com/library/ee942965).
+
+ Moving completed applications to other computers is generally referred to as deployment. The Microsoft development environment provides mechanisms for deployment; for more information, see [Deploying Applications and Components](/visualstudio/deployment/deploying-applications-services-and-components).
+
+ If you build and distribute mainly from the command line, you might need to consider other methods of deployment and redistributing dependencies.
+
+## See Also
+ [Command-line Building With csc.exe](command-line-building-with-csc-exe.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/appconfig-compiler-option.md b/docs/csharp/language-reference/compiler-options/appconfig-compiler-option.md
new file mode 100644
index 0000000000000..c4a3cb47af6a5
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/appconfig-compiler-option.md
@@ -0,0 +1,80 @@
+---
+title: "-appconfig (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/appconfig"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/appconfig compiler option [C#]"
+ms.assetid: 1cdbcbcc-7813-4010-b5b8-e67c107c5a98
+caps.latest.revision: 26
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /appconfig (C# Compiler Options)
+The **/appconfig** compiler option enables a C# application to specify the location of an assembly's application configuration (app.config) file to the common language runtime (CLR) at assembly binding time.
+
+## Syntax
+
+```
+/appconfig:file
+```
+
+## Arguments
+ `file`
+ Required. The application configuration file that contains assembly binding settings.
+
+## Remarks
+ One use of **/appconfig** is advanced scenarios in which an assembly has to reference both the .NET Framework version and the .NET Framework for Silverlight version of a particular reference assembly at the same time. For example, a XAML designer written in Windows Presentation Foundation (WPF) might have to reference both the WPF Desktop, for the designer's user interface, and the subset of WPF that is included with Silverlight. The same designer assembly has to access both assemblies. By default, the separate references cause a compiler error, because assembly binding sees the two assemblies as equivalent.
+
+ The **/appconfig** compiler option enables you to specify the location of an app.config file that disables the default behavior by using a `` tag, as shown in the following example.
+
+ ``
+
+ The compiler passes the location of the file to the CLR's assembly-binding logic.
+
+> [!NOTE]
+> If you are using the Microsoft Build Engine (MSBuild) to build your application, you can set the **/appconfig** compiler option by adding a property tag to the .csproj file. To use the app.config file that is already set in the project, add property tag `` to the .csproj file and set its value to `true`. To specify a different app.config file, add property tag `` and set its value to the location of the file.
+
+## Example
+ The following example shows an app.config file that enables an application to have references to both the .NET Framework implementation and the .NET Framework for Silverlight implementation of any .NET Framework assembly that exists in both implementations. The **/appconfig** compiler option specifies the location of this app.config file.
+
+```
+
+
+
+
+
+
+
+
+```
+
+## See Also
+ [.NET Framework Assembly Unification Overview](http://msdn.microsoft.com/en-us/8d8cc65e-031d-463b-bde3-2c6dc2e3bc48)
+ [\ Element](http://msdn.microsoft.com/library/6453ef66-19b4-41f3-b712-52d0c2abc9ca)
+ [C# Compiler Options Listed Alphabetically](../../../csharp/language-reference/compiler-options/listed-alphabetically.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/baseaddress-compiler-option.md b/docs/csharp/language-reference/compiler-options/baseaddress-compiler-option.md
new file mode 100644
index 0000000000000..ad8075ffd2b4b
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/baseaddress-compiler-option.md
@@ -0,0 +1,75 @@
+---
+title: "-baseaddress (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/dllbase"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "baseaddress compiler option [C#]"
+ - "/baseaddress compiler option [C#]"
+ - "-baseaddress compiler option [C#]"
+ms.assetid: ce13c965-dfe4-4433-94f5-63b476e3a608
+caps.latest.revision: 18
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /baseaddress (C# Compiler Options)
+The **/baseaddress** option lets you specify the preferred base address at which to load a DLL. For more information about when and why to use this option, see [Improving Application Startup Time](http://go.microsoft.com/fwlink/?LinkId=107043) and [Larry Osterman's WebLog](http://go.microsoft.com/fwlink/?LinkId=107044).
+
+## Syntax
+
+```
+/baseaddress:address
+```
+
+## Arguments
+ `address`
+ The base address for the DLL. This address can be specified as a decimal, hexadecimal, or octal number.
+
+## Remarks
+ The default base address for a DLL is set by the .NET Framework common language runtime.
+
+ Be aware that the lower-order word in this address will be rounded. For example, if you specify 0x11110001, it will be rounded to 0x11110000.
+
+ To complete the signing process for a DLL, use SN.EXE with the -R option.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Build** property page.
+
+3. Click the **Advanced** button.
+
+4. Modify the **DLL Base Address** property.
+
+ To set this compiler option programmatically, see .
+
+## See Also
+
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/bugreport-compiler-option.md b/docs/csharp/language-reference/compiler-options/bugreport-compiler-option.md
new file mode 100644
index 0000000000000..48b565886a2c0
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/bugreport-compiler-option.md
@@ -0,0 +1,81 @@
+---
+title: "-bugreport (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/bugreport"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/bugreport compiler option [C#]"
+ - "-bugreport compiler option [C#]"
+ - "bugreport compiler option [C#]"
+ms.assetid: f39665e3-4f6f-4357-88a2-3274c7bec0c1
+caps.latest.revision: 20
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /bugreport (C# Compiler Options)
+Specifies that debug information should be placed in a file for later analysis.
+
+## Syntax
+
+```
+/bugreport:file
+```
+
+## Arguments
+ `file`
+ The name of the file that you want to contain your bug report.
+
+## Remarks
+ The **/bugreport** option specifies that the following information should be placed in `file`:
+
+- A copy of all source code files in the compilation.
+
+- A listing of the compiler options used in the compilation.
+
+- Version information about your compiler, run time, and operating system.
+
+- Referenced assemblies and modules, saved as hexadecimal digits, except assemblies that ship with the .NET Framework and SDK.
+
+- Compiler output, if any.
+
+- A description of the problem, which you will be prompted for.
+
+- A description of how you think the problem should be fixed, which you will be prompted for.
+
+ If this option is used with **/errorreport:prompt** or **/errorreport:send**, the information in the file will be sent to Microsoft Corporation.
+
+ Because a copy of all source code files will be placed in `file`, you might want to reproduce the suspected code defect in the shortest possible program.
+
+ This compiler option is unavailable in Visual Studio and cannot be changed programmatically.
+
+ Notice that contents of the generated file expose source code that could result in inadvertent information disclosure.
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [/errorreport (C# Compiler Options)](../../../csharp/language-reference/compiler-options/errorreport-compiler-option.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/checked-compiler-option.md b/docs/csharp/language-reference/compiler-options/checked-compiler-option.md
new file mode 100644
index 0000000000000..45e83343c0ae8
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/checked-compiler-option.md
@@ -0,0 +1,78 @@
+---
+title: "-checked (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/checked"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "checked compiler option [C#]"
+ - "-checked compiler option [C#]"
+ - "/checked compiler option [C#]"
+ms.assetid: fb7475d3-e6a6-4e6d-b86c-69e7a74c854b
+caps.latest.revision: 20
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /checked (C# Compiler Options)
+The **/checked** option specifies whether an integer arithmetic statement that results in a value that is outside the range of the data type, and that is not in the scope of a [checked](../../../csharp/language-reference/keywords/checked.md) or [unchecked](../../../csharp/language-reference/keywords/unchecked.md) keyword, causes a run-time exception.
+
+## Syntax
+
+```
+/checked[+ | -]
+```
+
+## Remarks
+ An integer arithmetic statement that is in the scope of a `checked` or `unchecked` keyword is not subject to the effect of the **/checked** option.
+
+ If an integer arithmetic statement that is not in the scope of a `checked` or `unchecked` keyword results in a value outside the range of the data type, and **/checked+** (**/checked**) is used in the compilation, that statement causes an exception at run time. If **/checked-** is used in the compilation, that statement does not cause an exception at run time.
+
+ The default value for this option is **/checked-**. One scenario for using **/checked-** is in building large applications. Sometimes automated tools are used to build such applications, and such a tool might automatically set **/checked** to +. You can override the tool's global default by specifying **/checked-**.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page. For more information, see [Build Page, Project Designer (C#)](/visualstudio/ide/reference/build-page-project-designer-csharp).
+
+2. Click the **Build** property page.
+
+3. Click the **Advanced** button.
+
+4. Modify the **Check for arithmetic overflow/underflow** property.
+
+ To access this compiler option programmatically, see .
+
+## Example
+ The following command compiles `t2.cs`. The use of `/checked` in the command specifies that any integer arithmetic statement in the file that is not in the scope of a `checked` or `unchecked` keyword, and that results in a value that is outside the range of the data type, causes an exception at run time.
+
+```
+csc t2.cs /checked
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
+ [Introduction to the Project Designer](http://msdn.microsoft.com/en-us/898dd854-c98d-430c-ba1b-a913ce3c73d7)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/codepage-compiler-option.md b/docs/csharp/language-reference/compiler-options/codepage-compiler-option.md
new file mode 100644
index 0000000000000..03e3cde14f8e7
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/codepage-compiler-option.md
@@ -0,0 +1,64 @@
+---
+title: "-codepage (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/codepage"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/codepage compiler option [C#]"
+ - "codepage compiler option [C#]"
+ - "-codepage compiler option [C#]"
+ms.assetid: 75942989-b69a-4308-90a0-840c73d2c478
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /codepage (C# Compiler Options)
+This option specifies which codepage to use during compilation if the required page is not the current default codepage for the system.
+
+## Syntax
+
+```
+/codepage:id
+```
+
+## Arguments
+ `id`
+ The id of the code page to use for all source code files in the compilation.
+
+## Remarks
+ If you compile one or more source code files that were not created to use the default code page on your computer, you can use the **/codepage** option to specify which code page should be used. **/codepage** applies to all source code files in your compilation.
+
+ If the source code files were created with the same codepage that is in effect on your computer or if the source code files were created with UNICODE or UTF-8, you need not use **/codepage**.
+
+ See [GetCPInfo](http://go.microsoft.com/fwlink/?LinkId=148371) for information on how to find which code pages are supported on your system.
+
+ This compiler option is unavailable in Visual Studio and cannot be changed programmatically.
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_1.cs b/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_1.cs
new file mode 100644
index 0000000000000..8101e98c0241d
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_1.cs
@@ -0,0 +1,2 @@
+ // The following code causes an error if ISampleInterface is an embedded interop type.
+ ISampleInterface sample;
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_2.cs b/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_2.cs
new file mode 100644
index 0000000000000..257334671f8c5
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_2.cs
@@ -0,0 +1,10 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Office.Interop.Excel;
+
+public class Utility
+{
+ // The following code causes an error when called by a client assembly.
+ public List GetRange1() {
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_3.cs b/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_3.cs
new file mode 100644
index 0000000000000..de5854e2506e0
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_3.cs
@@ -0,0 +1,4 @@
+ }
+
+ // The following code is valid for calls from a client assembly.
+ public IList GetRange2() {
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_4.cs b/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_4.cs
new file mode 100644
index 0000000000000..feab5cd19c285
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_4.cs
@@ -0,0 +1,2 @@
+ }
+}
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_5.cs b/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_5.cs
new file mode 100644
index 0000000000000..3f4bc5f30f7af
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_5.cs
@@ -0,0 +1,13 @@
+public class Client
+{
+ public void Main()
+ {
+ Utility util = new Utility();
+
+ // The following code causes an error.
+ List rangeList1 = util.GetRange1();
+
+ // The following code is valid.
+ List rangeList2 = (List)util.GetRange2();
+ }
+}
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/command-line-building-with-csc-exe.md b/docs/csharp/language-reference/compiler-options/command-line-building-with-csc-exe.md
new file mode 100644
index 0000000000000..1bf64c4ee26bf
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/command-line-building-with-csc-exe.md
@@ -0,0 +1,128 @@
+---
+title: "Command-line Building With csc.exe | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+ - "CSharp"
+helpviewer_keywords:
+ - "builds [C#]"
+ - "command line [C#]"
+ms.assetid: 66e70056-dd20-453c-a9b3-507e0478b015
+caps.latest.revision: 28
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Command-line Building With csc.exe
+You can invoke the C# compiler by typing the name of its executable file (csc.exe) at a command prompt.
+
+ If you use the **Visual Studio Command Prompt** window, all the necessary environment variables are set for you. In Windows 7, you can access that window from the **Start** menu by opening the Microsoft Visual Studio *Version*\Visual Studio Tools folder. In Windows 8, the Visual Studio Command Prompt is called the **Developer Command Prompt for VS2012**, and you can find it by searching from the Start screen.
+
+ If you use a standard Command Prompt window, you must adjust your path before you can invoke csc.exe from any subdirectory on your computer. You also must run vsvars32.bat to set the appropriate environment variables to support command-line builds. For more information about vsvars32.bat, including instructions for how to find and run it, see [How to: Set Environment Variables for the Visual Studio Command Line](../../../csharp/language-reference/compiler-options/how-to-set-environment-variables-for-the-visual-studio-command-line.md).
+
+ If you're working on a computer that has only the [!INCLUDE[winsdklong](../../../csharp/language-reference/compiler-options/includes/winsdklong_md.md)], you can use the C# compiler at the **SDK Command Prompt**, which you open from the **Microsoft .NET Framework SDK** menu option.
+
+ You can also use MSBuild to build C# programs programmatically. For more information, see [MSBuild](/visualstudio/msbuild/msbuild1).
+
+ The csc.exe executable file usually is located in the Microsoft.NET\Framework\\*Version* folder under the Windows directory. Its location might vary depending on the exact configuration of a particular computer. If more than one version of the .NET Framework is installed on your computer, you'll find multiple versions of this file. For more information about such installations, see [Determining Which Version of the .NET Framework Is Installed](http://msdn.microsoft.com/en-us/1a87cc6a-1c4b-4c38-b878-faa9b3beae3c).
+
+> [!TIP]
+> When you build a project by using the Visual Studio IDE, you can display the **csc** command and its associated compiler options in the **Output** window. To display this information, follow the instructions in [How to: View, Save, and Configure Build Log Files](http://msdn.microsoft.com/library/75d38b76-26d6-4f43-bbe7-cbacd7cc81e7) to change the verbosity level of the log data to **Normal** or **Detailed**. After you rebuild your project, search the **Output** window for **csc** to find the invocation of the C# compiler.
+
+ **In this topic**
+
+- [Rules for Command-Line Syntax](#vcconcommand-linebuildinganchor1)
+
+- [Sample Command Lines](#vcconcommand-linebuildinganchor2)
+
+- [Differences Between C# Compiler and C++ Compiler Output](#vcconcommand-linebuildinganchor3)
+
+## Rules for Command-Line Syntax for the C# Compiler
+ The C# compiler uses the following rules when it interprets arguments given on the operating system command line:
+
+- Arguments are delimited by white space, which is either a space or a tab.
+
+- The caret character (^) is not recognized as an escape character or delimiter. The character is handled by the command-line parser in the operating system before it is passed to the argv array in the program.
+
+- A string enclosed in double quotation marks ("string") is interpreted as a single argument, regardless of white space that is contained within. A quoted string can be embedded in an argument.
+
+- A double quotation mark preceded by a backslash (\\") is interpreted as a literal double quotation mark character (").
+
+- Backslashes are interpreted literally, unless they immediately precede a double quotation mark.
+
+- If an even number of backslashes is followed by a double quotation mark, one backslash is put in the argv array for every pair of backslashes, and the double quotation mark is interpreted as a string delimiter.
+
+- If an odd number of backslashes is followed by a double quotation mark, one backslash is put in the argv array for every pair of backslashes, and the double quotation mark is "escaped" by the remaining backslash. This causes a literal double quotation mark (") to be added in argv.
+
+## Sample Command Lines for the C# Compiler
+
+- Compiles File.cs producing File.exe:
+
+ ```
+ csc File.cs
+ ```
+
+- Compiles File.cs producing File.dll:
+
+ ```
+ csc /target:library File.cs
+ ```
+
+- Compiles File.cs and creates My.exe:
+
+ ```
+ csc /out:My.exe File.cs
+ ```
+
+- Compiles all the C# files in the current directory, with optimizations on and defines the DEBUG symbol. The output is File2.exe:
+
+ ```
+ csc /define:DEBUG /optimize /out:File2.exe *.cs
+ ```
+
+- Compiles all the C# files in the current directory producing a debug version of File2.dll. No logo and no warnings are displayed:
+
+ ```
+ csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs
+ ```
+
+- Compiles all the C# files in the current directory to Something.xyz (a DLL):
+
+ ```
+ csc /target:library /out:Something.xyz *.cs
+ ```
+
+## Differences Between C# Compiler and C++ Compiler Output
+ There are no object (.obj) files created as a result of invoking the C# compiler; output files are created directly. As a result of this, the C# compiler does not need a linker.
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [C# Compiler Options Listed Alphabetically](../../../csharp/language-reference/compiler-options/listed-alphabetically.md)
+ [C# Compiler Options Listed by Category](../../../csharp/language-reference/compiler-options/listed-by-category.md)
+ [Main() and Command-Line Arguments](../../../csharp/programming-guide/main-and-command-args/main-and-command-line-arguments.md)
+ [Command-Line Arguments](../../../csharp/programming-guide/main-and-command-args/command-line-arguments.md)
+ [How to: Display Command Line Arguments](../../../csharp/programming-guide/main-and-command-args/how-to-display-command-line-arguments.md)
+ [How to: Access Command-Line Arguments Using foreach](../../../csharp/programming-guide/main-and-command-args/how-to-access-command-line-arguments-using-foreach.md)
+ [Main() Return Values](../../../csharp/programming-guide/main-and-command-args/main-return-values.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/debug-compiler-option.md b/docs/csharp/language-reference/compiler-options/debug-compiler-option.md
new file mode 100644
index 0000000000000..4b1025151589f
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/debug-compiler-option.md
@@ -0,0 +1,90 @@
+---
+title: "-debug (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/debug"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "debug compiler option [C#]"
+ - "-debug compiler option [C#]"
+ - "/debug compiler option [C#]"
+ms.assetid: e2b48c07-01bc-45cc-a52c-92e9085eb969
+caps.latest.revision: 19
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /debug (C# Compiler Options)
+The **/debug** option causes the compiler to generate debugging information and place it in the output file or files.
+
+## Syntax
+
+```
+/debug[+ | -]
+/debug:{full | pdbonly}
+```
+
+## Arguments
+ `+` | `-`
+ Specifying `+`, or just **/debug**, causes the compiler to generate debugging information and place it in a program database (.pdb file). Specifying `-`, which is in effect if you do not specify **/debug**, causes no debug information to be created.
+
+ `full` | `pdbonly`
+ Specifies the type of debugging information generated by the compiler. The full argument, which is in effect if you do not specify **/debug:pdbonly**, enables attaching a debugger to the running program. Specifying pdbonly allows source code debugging when the program is started in the debugger but will only display assembler when the running program is attached to the debugger.
+
+## Remarks
+ Use this option to create debug builds. If **/debug**, **/debug+**, or **/debug:full** is not specified, you will not be able to debug the output file of your program.
+
+ If you use **/debug:full**, be aware that there is some impact on the speed and size of JIT optimized code and a small impact on code quality with **/debug:full**. We recommend **/debug:pdbonly** or no PDB for generating release code.
+
+> [!NOTE]
+> One difference between **/debug:pdbonly** and **/debug:full** is that with **/debug:full** the compiler emits a , which is used to tell the JIT compiler that debug information is available. Therefore, you will get an error if your code contains the set to false if you use **/debug:full**.
+
+ For more information on how to configure the debug performance of an application, see [Making an Image Easier to Debug](http://msdn.microsoft.com/library/7d90ea7a-150f-4f97-98a7-f9c26541b9a3).
+
+ To change the location of the .pdb file, see [/pdb (C# Compiler Options)](../../../csharp/language-reference/compiler-options/pdb-compiler-option.md).
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Build** property page.
+
+3. Click the **Advanced** button.
+
+4. Modify the **Debug Info** property.
+
+ For information on how to set this compiler option programmatically, see .
+
+## Example
+ Place debugging information in output file `app.pdb`:
+
+```
+csc /debug /pdb:app.pdb test.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/define-compiler-option.md b/docs/csharp/language-reference/compiler-options/define-compiler-option.md
new file mode 100644
index 0000000000000..d77ef650fdb4e
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/define-compiler-option.md
@@ -0,0 +1,105 @@
+---
+title: "-define (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/define"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "-define compiler option [C#]"
+ - "/define compiler option [C#]"
+ - "-d compiler option [C#]"
+ - "define compiler option [C#]"
+ - "/d compiler option [C#]"
+ - "d compiler option [C#]"
+ms.assetid: f17d7b4d-82d0-4133-8563-68cced1cac6e
+caps.latest.revision: 21
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /define (C# Compiler Options)
+The **/define** option defines `name` as a symbol in all source code files your program.
+
+## Syntax
+
+```
+/define:name[;name2]
+```
+
+## Arguments
+ `name`, `name2`
+ The name of one or more symbols that you want to define.
+
+## Remarks
+ The **/define** option has the same effect as using a [#define](../../../csharp/language-reference/preprocessor-directives/preprocessor-define.md) preprocessor directive except that the compiler option is in effect for all files in the project. A symbol remains defined in a source file until an [#undef](../../../csharp/language-reference/preprocessor-directives/preprocessor-undef.md) directive in the source file removes the definition. When you use the /define option, an `#undef` directive in one file has no effect on other source code files in the project.
+
+ You can use symbols created by this option with [#if](../../../csharp/language-reference/preprocessor-directives/preprocessor-if.md), [#else](../../../csharp/language-reference/preprocessor-directives/preprocessor-else.md), [#elif](../../../csharp/language-reference/preprocessor-directives/preprocessor-elif.md), and [#endif](../../../csharp/language-reference/preprocessor-directives/preprocessor-endif.md) to compile source files conditionally.
+
+ **/d** is the short form of **/define**.
+
+ You can define multiple symbols with **/define** by using a semicolon or comma to separate symbol names. For example:
+
+```
+/define:DEBUG;TUESDAY
+```
+
+ The C# compiler itself defines no symbols or macros that you can use in your source code; all symbol definitions must be user-defined.
+
+> [!NOTE]
+> The C# `#define` does not allow a symbol to be given a value, as in languages such as C++. For example, `#define` cannot be used to create a macro or to define a constant. If you need to define a constant, use an `enum` variable. If you want to create a C++ style macro, consider alternatives such as generics. Since macros are notoriously error-prone, C# disallows their use but provides safer alternatives.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. On the **Build** tab, type the symbol that is to be defined in the **Conditional compilation symbols** box. For example, if you are using the code example that follows, just type `xx` into the text box.
+
+ For information on how to set this compiler option programmatically, see .
+
+## Example
+
+```
+// preprocessor_define.cs
+// compile with: /define:xx
+// or uncomment the next line
+// #define xx
+using System;
+public class Test
+{
+ public static void Main()
+ {
+ #if (xx)
+ Console.WriteLine("xx defined");
+ #else
+ Console.WriteLine("xx not defined");
+ #endif
+ }
+}
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/delaysign-compiler-option.md b/docs/csharp/language-reference/compiler-options/delaysign-compiler-option.md
new file mode 100644
index 0000000000000..572c537dcdcb1
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/delaysign-compiler-option.md
@@ -0,0 +1,72 @@
+---
+title: "-delaysign (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/delaysign"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "-delaysign compiler option [C#]"
+ - "delaysign compiler option [C#]"
+ - "/delaysign compiler option [C#]"
+ms.assetid: bcb058eb-2933-4e7f-b356-5c941db4de75
+caps.latest.revision: 16
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /delaysign (C# Compiler Options)
+This option causes the compiler to reserve space in the output file so that a digital signature can be added later.
+
+## Syntax
+
+```
+/delaysign[ + | - ]
+```
+
+## Arguments
+ `+` | `-`
+ Use **/delaysign-** if you want a fully signed assembly. Use **/delaysign+** if you only want to place the public key in the assembly. The default is **/delaysign-**.
+
+## Remarks
+ The **/delaysign** option has no effect unless used with [/keyfile](../../../csharp/language-reference/compiler-options/keyfile-compiler-option.md) or [/keycontainer](../../../csharp/language-reference/compiler-options/keycontainer-compiler-option.md).
+
+ When you request a fully signed assembly, the compiler hashes the file that contains the manifest (assembly metadata) and signs that hash with the private key. The resulting digital signature is stored in the file that contains the manifest. When an assembly is delay signed, the compiler does not compute and store the signature, but reserves space in the file so the signature can be added later.
+
+ For example, using **/delaysign+** allows a tester to put the assembly in the global cache. After testing, you can fully sign the assembly by placing the private key in the assembly using the [Assembly Linker](https://msdn.microsoft.com/library/c405shex) utility.
+
+ For more information, see [Creating and Using Strong-Named Assemblies](https://msdn.microsoft.com/library/xwb8f617) and [Delay Signing an Assembly](http://msdn.microsoft.com/library/9d300e17-5bf1-4360-97da-2aa55efd9070).
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the **Properties** page for the project.
+
+2. Modify the **Delay sign only** property.
+
+ For information on how to set this compiler option programmatically, see .
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/doc-compiler-option.md b/docs/csharp/language-reference/compiler-options/doc-compiler-option.md
new file mode 100644
index 0000000000000..1ce162fc905a7
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/doc-compiler-option.md
@@ -0,0 +1,87 @@
+---
+title: "-doc (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "FileProperties.BuildAction"
+ - "/doc"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "comments, C# code"
+ - "XML documentation [C#], comments in source files"
+ - "doc compiler option [C#]"
+ - "Visual C#, XML documentation for"
+ - "-doc compiler option [C#]"
+ - "/doc compiler option [C#]"
+ms.assetid: 849eea59-c936-4311-bad8-d07404480f2a
+caps.latest.revision: 19
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /doc (C# Compiler Options)
+The **/doc** option allows you to place documentation comments in an XML file.
+
+## Syntax
+
+```
+/doc:file
+```
+
+## Arguments
+ `file`
+ The output file for XML, which is populated with the comments in the source code files of the compilation.
+
+## Remarks
+ In source code files, documentation comments that precede the following can be processed and added to the XML file:
+
+- Such user-defined types as a [class](../../../csharp/language-reference/keywords/class.md), [delegate](../../../csharp/language-reference/keywords/delegate.md), or [interface](../../../csharp/language-reference/keywords/interface.md)
+
+- Such members as a field, [event](../../../csharp/language-reference/keywords/event.md), [property](../../../csharp/programming-guide/classes-and-structs/using-properties.md), or method
+
+ The source code file that contains Main is output first into the XML.
+
+ To use the generated .xml file for use with the [IntelliSense](/visualstudio/ide/using-intellisense) feature, let the file name of the .xml file be the same as the assembly you want to support and then make sure the .xml file is in the same directory as the assembly. Thus, when the assembly is referenced in the Visual Studio project, the .xml file is found as well. See [Supplying Code Comments](/visualstudio/ide/supplying-xml-code-comments) and for more information.
+
+ Unless you compile with [/target:module](../../../csharp/language-reference/compiler-options/target-module-compiler-option.md), `file` will contain \\ tags specifying the name of the file containing the assembly manifest for the output file of the compilation.
+
+> [!NOTE]
+> The /doc option applies to all input files; or, if set in the Project Settings, all files in the project. To disable warnings related to documentation comments for a specific file or section of code, use [#pragma warning](../../../csharp/language-reference/preprocessor-directives/preprocessor-pragma-warning.md).
+
+ See [Recommended Tags for Documentation Comments](../../../csharp/programming-guide/xmldoc/recommended-tags-for-documentation-comments.md) for ways to generate documentation from comments in your code.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Build** tab.
+
+3. Modify the **XML documentation file** property.
+
+ For information on how to set this compiler option programmatically, see .
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/errorreport-compiler-option.md b/docs/csharp/language-reference/compiler-options/errorreport-compiler-option.md
new file mode 100644
index 0000000000000..0c7437aae2265
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/errorreport-compiler-option.md
@@ -0,0 +1,89 @@
+---
+title: "-errorreport (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/errorreport"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "-errorreport compiler option [C#]"
+ - "errorreport compiler option [C#]"
+ - "/errorreport compiler option [C#]"
+ms.assetid: bd0e7493-b79d-4369-9c3f-ba26ebdfbedf
+caps.latest.revision: 35
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /errorreport (C# Compiler Options)
+This option provides a convenient way to report a C# internal compiler error to Microsoft.
+
+> [!NOTE]
+> On Windows Vista and Windows Server 2008, the error reporting settings that you make for Visual Studio do not override the settings made through Windows Error Reporting (WER). WER settings always take precedence over Visual Studio error reporting settings.
+
+## Syntax
+
+```
+/errorreport:{ none | prompt | queue | send }
+```
+
+## Arguments
+ **none**
+ Reports about internal compiler errors will not be collected or sent to Microsoft.
+
+ **prompt**
+ Prompts you to send a report when you receive an internal compiler error. **prompt** is the default when you compile an application in the development environment.
+
+ **queue**
+ Queues the error report. When you log on with administrative credentials, you can report any failures since the last time that you were logged on. You will not be prompted to send reports for failures more than once every three days. **queue** is the default when you compile an application at the command line.
+
+ **send**
+ Automatically sends reports of internal compiler errors to Microsoft. To enable this option, you must first agree to the Microsoft data collection policy. The first time that you specify **/errorreport:send** on a computer, a compiler message will refer you to a Web site that contains the Microsoft data collection policy.
+
+ This option depends on registry settings. For information about how to set the appropriate values in the registry, see [How to Turn on Automatic Error Reporting in Visual Studio 2008 Command-line Tools](http://go.microsoft.com/fwlink/?LinkID=184695) on the MSDN Web site.
+
+## Remarks
+ An internal compiler error (ICE) results when the compiler cannot process a source code file. When an ICE occurs, the compiler does not produce an output file or any useful diagnostic that you can use to fix your code.
+
+ In previous releases, when you received an ICE, you were encouraged to contact Microsoft Product Support Services to report the problem. By using **/errorreport**, you can provide ICE information to the Visual C# team. Your error reports can help improve future compiler releases.
+
+ A user's ability to send reports depends on computer and user policy permissions.
+
+ For more information about error debugger, see [Description of the Dr. Watson for Windows (Drwtsn32.exe) Tool](http://go.microsoft.com/fwlink/?LinkId=147286).
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page. For more information, see [Build Page, Project Designer (C#)](/visualstudio/ide/reference/build-page-project-designer-csharp).
+
+2. Click the **Build** property page.
+
+3. Click the **Advanced** button.
+
+4. Modify the **Internal Compiler Error Reporting** property.
+
+ For information about how to set this compiler option programmatically, see .
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/filealign-compiler-option.md b/docs/csharp/language-reference/compiler-options/filealign-compiler-option.md
new file mode 100644
index 0000000000000..d05df286a1baa
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/filealign-compiler-option.md
@@ -0,0 +1,82 @@
+---
+title: "-filealign (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/filealign"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/alignment compiler option [C#]"
+ - "filealign compiler option [C#]"
+ - "-filealign compiler option [C#]"
+ - "/sections compiler option [C#]"
+ - "alignment compiler option [C#]"
+ - "sections compiler option [C#]"
+ - "-sections compiler option [C#]"
+ - "/filealign compiler option [C#]"
+ - "file sharing [C#]"
+ - "-alignment compiler option [C#]"
+ - "section alignment [C#]"
+ms.assetid: 15cf1c98-3798-4ced-9f08-60619308a073
+caps.latest.revision: 14
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /filealign (C# Compiler Options)
+The **/filealign** option lets you specify the size of sections in your output file.
+
+## Syntax
+
+```
+/filealign:number
+```
+
+## Arguments
+ `number`
+ A value that specifies the size of sections in the output file. Valid values are 512, 1024, 2048, 4096, and 8192. These values are in bytes.
+
+## Remarks
+ Each section will be aligned on a boundary that is a multiple of the **/filealign** value. There is no fixed default. If **/filealign** is not specified, the common language runtime picks a default at compile time.
+
+ By specifying the section size, you affect the size of the output file. Modifying section size may be useful for programs that will run on smaller devices.
+
+ Use [DUMPBIN](/cpp/build/reference/dumpbin-options) to see information about sections in your output file.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Build** property page.
+
+3. Click the **Advanced** button.
+
+4. Modify the **File Alignment** property.
+
+ For information on how to set this compiler option programmatically, see .
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/fullpaths-compiler-option.md b/docs/csharp/language-reference/compiler-options/fullpaths-compiler-option.md
new file mode 100644
index 0000000000000..b118566baefcd
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/fullpaths-compiler-option.md
@@ -0,0 +1,58 @@
+---
+title: "-fullpaths (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/fullpaths"
+dev_langs:
+ - "CSharp"
+ - "CSharp"
+helpviewer_keywords:
+ - "/fullpaths compiler option [C#]"
+ - "absolute paths [C#]"
+ - "fullpaths compiler option [C#]"
+ - "full paths [C#]"
+ - "-fullpaths compiler option [C#]"
+ms.assetid: d2a5f857-cbb2-430b-879c-d648aaf0b8c4
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /fullpaths (C# Compiler Options)
+The **/fullpaths** option causes the compiler to specify the full path to the file when listing compilation errors and warnings.
+
+## Syntax
+
+```
+/fullpaths
+```
+
+## Remarks
+ By default, errors and warnings that result from compilation specify the name of the file in which an error was found. The **/fullpaths** option causes the compiler to specify the full path to the file.
+
+ This compiler option is unavailable in Visual Studio and cannot be changed programmatically.
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/help-compiler-option.md b/docs/csharp/language-reference/compiler-options/help-compiler-option.md
new file mode 100644
index 0000000000000..095adc12ac5c5
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/help-compiler-option.md
@@ -0,0 +1,61 @@
+---
+title: "-help, -? (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/?"
+ - "/help"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/? compiler option [C#]"
+ - "help compiler option [C#]"
+ - "? compiler option [C#]"
+ - "-help compiler option [C#]"
+ - "/help compiler option [C#]"
+ - "-? compiler option [C#]"
+ms.assetid: 8d53f6ba-5c3b-4183-976e-9c0f26fd3680
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /help, /? (C# Compiler Options)
+This option sends a listing of compiler options, and a brief description of each option, to stdout.
+
+## Syntax
+
+```
+/help
+/?
+```
+
+## Remarks
+ If this option is included in a compilation, no output file will be created and no compilation will take place.
+
+ This compiler option is unavailable in Visual Studio and cannot be changed programmatically.
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/highentropyva-compiler-option.md b/docs/csharp/language-reference/compiler-options/highentropyva-compiler-option.md
new file mode 100644
index 0000000000000..3aca9391f8b94
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/highentropyva-compiler-option.md
@@ -0,0 +1,58 @@
+---
+title: "-highentropyva (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/highentropyva"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/highentropyva compiler option [C#]"
+ - "-highentropyva compiler option [C#]"
+ - "highentropyva compiler option [C#]"
+ms.assetid: eaf409b3-384e-49dd-9417-62453658f421
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /highentropyva (C# Compiler Options)
+The **/highentropyva** compiler option tells the Windows kernel whether a particular executable supports high entropy Address Space Layout Randomization (ASLR).
+
+## Syntax
+
+```
+/highentropyva[+ | -]
+```
+
+## Arguments
+ `+` | `-`
+ This option specifies that a 64-bit executable or an executable that is marked by the [/platform:anycpu](../../../csharp/language-reference/compiler-options/platform-compiler-option.md) compiler option supports a high entropy virtual address space. The option is disabled by default. Use **/highentropyva+** or **/highentropyva** to enable it.
+
+## Remarks
+ The **/highentropyva** option enables compatible versions of the Windows kernel to use higher degrees of entropy when randomizing the address space layout of a process as part of ASLR. Using higher degrees of entropy means that a larger number of addresses can be allocated to memory regions such as stacks and heaps. As a result, it is more difficult to guess the location of a particular memory region.
+
+ When the **/highentropyva** compiler option is specified, the target executable and any modules that it depends on must be able to handle pointer values that are larger than 4 gigabytes (GB) when they are running as a 64-bit process.
+
+ For more information about ASLR, see [Mitigating Software Vulnerabilities](http://go.microsoft.com/fwlink/?LinkId=226234).
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/how-to-set-environment-variables-for-the-visual-studio-command-line.md b/docs/csharp/language-reference/compiler-options/how-to-set-environment-variables-for-the-visual-studio-command-line.md
new file mode 100644
index 0000000000000..387cf13532b43
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/how-to-set-environment-variables-for-the-visual-studio-command-line.md
@@ -0,0 +1,65 @@
+---
+title: "How to: Set Environment Variables for the Visual Studio Command Line | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "cs.build.commandline"
+dev_langs:
+ - "CSharp"
+ - "CSharp"
+helpviewer_keywords:
+ - "csc.exe, command-line builds"
+ - "Visual C#, command-line builds"
+ - "command-line compilers, Visual C#"
+ - "Vsvars32.bat"
+ - "builds [C#], command-line"
+ - "compilers, invoking from command line"
+ - "Vcvars32.bat file"
+ - "command line [C#], building from"
+ - "Visual C# compiler, enabling"
+ - "compiling source code, from command line"
+ms.assetid: 7ec09480-5612-4f6a-8d00-ad90ea9bca5d
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# How to: Set Environment Variables for the Visual Studio Command Line
+The vsvars32.bat file sets the appropriate environment variables to enable command-line builds. For more information about vsvars32.bat, see [Knowledge Base article Q248802](http://go.microsoft.com/fwlink/?LinkId=225042).
+
+ If the current version of Visual Studio is installed on a computer that also has an earlier version of Visual Studio, you should not run vsvars32.bat or vcvars32.bat from different versions in the same Command Prompt window.
+
+### To run VSVARS32.BAT
+
+1. From the **Start** menu, open the **Developer Command Prompt for VS2012**.
+
+2. Change to the Program Files\Microsoft Visual Studio *Version*\Common7\Tools or Program Files (x86)\Microsoft Visual Studio *Version*\Common7\Tools subdirectory of your installation.
+
+3. Run VSVARS32.bat by typing **VSVARS32**.
+
+ > [!CAUTION]
+ > VSVARS32.bat can vary from computer to computer. Do not replace a missing or damaged VSVARS32.bat file with a VSVARS32.bat from another computer. Instead, rerun setup to replace the missing file.
+
+## See Also
+ [Command-line Building With csc.exe](../../../csharp/language-reference/compiler-options/command-line-building-with-csc-exe.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/includes/csharp_current_short_md.md b/docs/csharp/language-reference/compiler-options/includes/csharp_current_short_md.md
new file mode 100644
index 0000000000000..71d63006f278b
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/includes/csharp_current_short_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Visual C#
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/includes/net_v45_md.md b/docs/csharp/language-reference/compiler-options/includes/net_v45_md.md
new file mode 100644
index 0000000000000..3b736fa7297b7
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/includes/net_v45_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+.NET Framework 4.5
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/includes/win8_md.md b/docs/csharp/language-reference/compiler-options/includes/win8_md.md
new file mode 100644
index 0000000000000..f059d4b11da6b
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/includes/win8_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Windows 8
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/includes/winsdklong_md.md b/docs/csharp/language-reference/compiler-options/includes/winsdklong_md.md
new file mode 100644
index 0000000000000..e0b8a53ee90cb
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/includes/winsdklong_md.md
@@ -0,0 +1,17 @@
+---
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+Windows Software Development Kit (SDK)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/index.md b/docs/csharp/language-reference/compiler-options/index.md
new file mode 100644
index 0000000000000..b179b7302e1ca
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/index.md
@@ -0,0 +1,74 @@
+---
+title: "C# Compiler Options | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "cs.build.options"
+dev_langs:
+ - "CSharp"
+ - "CSharp"
+helpviewer_keywords:
+ - "compiler options [C#]"
+ - "csc.exe"
+ - "cl.exe compiler, C# options"
+ - "Visual C# compiler"
+ - "Visual C#, compiler options"
+ms.assetid: d3403556-1816-4546-a782-e8223a772e44
+caps.latest.revision: 21
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# C# Compiler Options
+The compiler produces executable (.exe) files, dynamic-link libraries (.dll), or code modules (.netmodule).
+
+ Every compiler option is available in two forms: **-option** and **/option**. The documentation only shows the **/option** form.
+
+ In Visual Web Developer 2008, you set compiler options in the web.config file. For more information, see [\ Element](https://msdn.microsoft.com/library/y9x69bzw).
+
+## In This Section
+ [Command-line Building With csc.exe](../../../csharp/language-reference/compiler-options/command-line-building-with-csc-exe.md)
+ Information about building a Visual C# application from the command line.
+
+ [How to: Set Environment Variables for the Visual Studio Command Line](../../../csharp/language-reference/compiler-options/how-to-set-environment-variables-for-the-visual-studio-command-line.md)
+ Provides steps for running vsvars32.bat to enable command-line builds.
+
+ [Deployment of C# Applications](../../../csharp/language-reference/compiler-options/app-deployment.md)
+ Describes options for deploying C# applications.
+
+ [C# Compiler Options Listed by Category](../../../csharp/language-reference/compiler-options/listed-by-category.md)
+ A categorical listing of the compiler options.
+
+ [C# Compiler Options Listed Alphabetically](../../../csharp/language-reference/compiler-options/listed-alphabetically.md)
+ An alphabetical listing of the compiler options.
+
+## Related Sections
+ [Build Page, Project Designer](/visualstudio/ide/reference/build-page-project-designer-csharp)
+ Setting properties that govern how your project is compiled, built, and debugged. Includes information about custom build steps in Visual C# projects.
+
+ [Default and Custom Builds](/visualstudio/ide/compiling-and-building-in-visual-studio)
+ Information on build types and configurations.
+
+ [Preparing and Managing Builds](/visualstudio/ide/building-and-cleaning-projects-and-solutions-in-visual-studio)
+ Procedures for building within the Visual Studio development environment.
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/keycontainer-compiler-option.md b/docs/csharp/language-reference/compiler-options/keycontainer-compiler-option.md
new file mode 100644
index 0000000000000..4d4875c75a9b1
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/keycontainer-compiler-option.md
@@ -0,0 +1,72 @@
+---
+title: "-keycontainer (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/keycontainer"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/keycontainer compiler option [C#]"
+ - "keycontainer compiler option [C#]"
+ - "-keycontainer compiler option [C#]"
+ms.assetid: b3982b6d-2382-4f7e-bebd-ce98eaa30763
+caps.latest.revision: 17
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /keycontainer (C# Compiler Options)
+Specifies the name of the cryptographic key container.
+
+## Syntax
+
+```
+/keycontainer:string
+```
+
+## Arguments
+ `string`
+ The name of the strong name key container.
+
+## Remarks
+ When the **/keycontainer** option is used, the compiler creates a sharable component by inserting a public key from the specified container into the assembly manifest and signing the final assembly with the private key. To generate a key file, type sn -k `file` at the command line. sn -i installs the key pair into a container.
+
+ If you compile with [/target:module](../../../csharp/language-reference/compiler-options/target-module-compiler-option.md), the name of the key file is held in the module and incorporated into the assembly when you compile this module into an assembly with [/addmodule](../../../csharp/language-reference/compiler-options/addmodule-compiler-option.md).
+
+ You can also specify this option as a custom attribute () in the source code for any Microsoft intermediate language (MSIL) module.
+
+ You can also pass your encryption information to the compiler with [/keyfile](../../../csharp/language-reference/compiler-options/keyfile-compiler-option.md). Use [/delaysign](../../../csharp/language-reference/compiler-options/delaysign-compiler-option.md) if you want the public key added to the assembly manifest but want to delay signing the assembly until it has been tested.
+
+ For more information, see [Creating and Using Strong-Named Assemblies](https://msdn.microsoft.com/library/xwb8f617) and [Delay Signing an Assembly](http://msdn.microsoft.com/library/9d300e17-5bf1-4360-97da-2aa55efd9070).
+
+### To set this compiler option in the Visual Studio development environment
+
+1. This compiler option is not available in the Visual Studio development environment.
+
+ You can programmatically access this compiler option with .
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/keyfile-compiler-option.md b/docs/csharp/language-reference/compiler-options/keyfile-compiler-option.md
new file mode 100644
index 0000000000000..756b6d86cdd23
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/keyfile-compiler-option.md
@@ -0,0 +1,80 @@
+---
+title: "-keyfile (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/keyfile"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/keyfile compiler option [C#]"
+ - "-keyfile compiler option [C#]"
+ - "keyfile compiler option [C#]"
+ms.assetid: 0815f9de-ace4-4e98-b4c6-13c55dea40c2
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /keyfile (C# Compiler Options)
+Specifies the filename containing the cryptographic key.
+
+## Syntax
+
+```
+/keyfile:file
+```
+
+## Arguments
+
+|Term|Definition|
+|----------|----------------|
+|`file`|The name of the file containing the strong name key.|
+
+## Remarks
+ When this option is used, the compiler inserts the public key from the specified file into the assembly manifest and then signs the final assembly with the private key. To generate a key file, type sn -k `file` at the command line.
+
+ If you compile with **/target:module**, the name of the key file is held in the module and incorporated into the assembly that is created when you compile an assembly with [/addmodule](../../../csharp/language-reference/compiler-options/addmodule-compiler-option.md).
+
+ You can also pass your encryption information to the compiler with [/keycontainer](../../../csharp/language-reference/compiler-options/keycontainer-compiler-option.md). Use [/delaysign](../../../csharp/language-reference/compiler-options/delaysign-compiler-option.md) if you want a partially signed assembly.
+
+ In case both /keyfile and /keycontainer are specified (either by command line option or by custom attribute) in the same compilation, the compiler will first try the key container. If that succeeds, then the assembly is signed with the information in the key container. If the compiler does not find the key container, it will try the file specified with /keyfile. If that succeeds, the assembly is signed with the information in the key file and the key information will be installed in the key container (similar to sn -i) so that on the next compilation, the key container will be valid.
+
+ Note that a key file might contain only the public key.
+
+ For more information, see [Creating and Using Strong-Named Assemblies](https://msdn.microsoft.com/library/xwb8f617) and [Delay Signing an Assembly](http://msdn.microsoft.com/library/9d300e17-5bf1-4360-97da-2aa55efd9070).
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the **Properties** page for the project.
+
+2. Click the **Signing** property page.
+
+3. Modify the **Choose a strong name key file** property.
+
+ You can programmatically access this compiler option with .
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/langversion-compiler-option.md b/docs/csharp/language-reference/compiler-options/langversion-compiler-option.md
new file mode 100644
index 0000000000000..ae818a951493c
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/langversion-compiler-option.md
@@ -0,0 +1,82 @@
+---
+title: "-langversion (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/langversion"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/langversion compiler option [C#]"
+ - "-langversion compiler option [C#]"
+ - "langversion compiler option [C#]"
+ms.assetid: 3fb00b05-a0ff-4782-b313-13a4c0f62d94
+caps.latest.revision: 33
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /langversion (C# Compiler Options)
+Causes the compiler to accept only syntax that is included in the chosen C# language specification.
+
+## Syntax
+
+```
+/langversion:option
+```
+
+## Arguments
+ `option`
+ The following values are valid:
+
+|Option|Meaning|
+|------------|-------------|
+|default|The compiler accepts all valid language syntax.|
+|ISO-1|The compiler accepts only syntax that is included in the ISO/IEC 23270:2003 C# language specification.|
+|ISO-2|The compiler accepts only syntax that is included in the ISO/IEC 23270:2006 C# language specification. This specification is available on the [ISO](http://go.microsoft.com/fwlink/?LinkId=144406) Web site.|
+|3|The compiler accepts only syntax that is included in the version 3.0 [C# Language Specification](../../../csharp/language-reference/language-specification.md).|
+
+## Remarks
+ Metadata referenced by your C# application is not subject to **/langversion** compiler option.
+
+ Because each version of the C# compiler contains extensions to the language specification, **/langversion** does not give you the equivalent functionality of an earlier version of the compiler.
+
+ Regardless of which **/langversion** setting you use, you will use the current version of the common language runtime to create your .exe or .dll. One exception is friend assemblies and [/moduleassemblyname (C# Compiler Option)](../../../csharp/language-reference/compiler-options/moduleassemblyname-compiler-option.md), which work under **/langversion:ISO-1**.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Build** property page.
+
+3. Click the **Advanced** button.
+
+4. Modify the **Language Version** property.
+
+ For information about how to set this compiler option programmatically, see .
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
+ [C# Language Specification](../../../csharp/language-reference/language-specification.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/lib-compiler-option.md b/docs/csharp/language-reference/compiler-options/lib-compiler-option.md
new file mode 100644
index 0000000000000..e0703c15566d4
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/lib-compiler-option.md
@@ -0,0 +1,94 @@
+---
+title: "-lib (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/lib"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "lib compiler option [C#]"
+ - "-lib compiler option [C#]"
+ - "/lib compiler option [C#]"
+ms.assetid: b0efcc88-e8aa-4df4-a00b-8bdef70b7673
+caps.latest.revision: 16
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /lib (C# Compiler Options)
+The **/lib** option specifies the location of assemblies referenced by means of the [/reference (C# Compiler Options)](../../../csharp/language-reference/compiler-options/reference-compiler-option.md) option.
+
+## Syntax
+
+```
+/lib:dir1[,dir2]
+```
+
+## Arguments
+ `dir1`
+ A directory for the compiler to look in if a referenced assembly is not found in the current working directory (the directory from which you are invoking the compiler) or in the common language runtime's system directory.
+
+ `dir2`
+ One or more additional directories to search in for assembly references. Separate additional directory names with a comma, and without white space between them.
+
+## Remarks
+ The compiler searches for assembly references that are not fully qualified in the following order:
+
+1. Current working directory. This is the directory from which the compiler is invoked.
+
+2. The common language runtime system directory.
+
+3. Directories specified by **/lib**.
+
+4. Directories specified by the LIB environment variable.
+
+ Use **/reference** to specify an assembly reference.
+
+ **/lib** is additive; specifying it more than once appends to any prior values.
+
+ An alternative to using **/lib** is to copy into the working directory any required assemblies; this will allow you to simply pass the assembly name to **/reference**. You can then delete the assemblies from the working directory. Since the path to the dependent assembly is not specified in the assembly manifest, the application can be started on the target computer and will find and use the assembly in the global assembly cache.
+
+ Because the compiler can reference the assembly does not imply the common language runtime will be able to find and load the assembly at runtime. See [How the Runtime Locates Assemblies](http://msdn.microsoft.com/library/772ac6f4-64d2-4cfb-92fd-58096dcd6c34) for details on how the runtime searches for referenced assemblies.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Property Pages** dialog box.
+
+2. Click the **References Path** property page.
+
+3. Modify the contents of the list box.
+
+ For information on how to set this compiler option programmatically, see .
+
+## Example
+ Compile t2.cs to create an .exe file. The compiler will look in the working directory and in the root directory of the C drive for assembly references.
+
+```
+csc /lib:c:\ /reference:t2.dll t2.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/link-compiler-option.md b/docs/csharp/language-reference/compiler-options/link-compiler-option.md
new file mode 100644
index 0000000000000..5ebff43c8deb1
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/link-compiler-option.md
@@ -0,0 +1,112 @@
+---
+title: "-link (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/l compiler option [C#]"
+ - "/link compiler option [C#]"
+ - "-l compiler option [C#]"
+ - "EmbedInteropTypes"
+ - "l compiler option [C#]"
+ - "embed interop types [COM Interop]"
+ - "-link compiler option [C#]"
+ - "link compiler option [C#]"
+ms.assetid: 00da70c6-9ea1-43c2-86f2-aa7f26c03475
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /link (C# Compiler Options)
+Causes the compiler to make COM type information in the specified assemblies available to the project that you are currently compiling.
+
+## Syntax
+
+```
+/link:fileList
+// -or-
+/l:fileList
+```
+
+## Arguments
+ `fileList`
+ Required. Comma-delimited list of assembly file names. If the file name contains a space, enclose the name in quotation marks.
+
+## Remarks
+ The `/link` option enables you to deploy an application that has embedded type information. The application can then use types in a runtime assembly that implement the embedded type information without requiring a reference to the runtime assembly. If various versions of the runtime assembly are published, the application that contains the embedded type information can work with the various versions without having to be recompiled. For an example, see [Walkthrough: Embedding Types from Managed Assemblies](http://msdn.microsoft.com/library/b28ec92c-1867-4847-95c0-61adfe095e21).
+
+ Using the `/link` option is especially useful when you are working with COM interop. You can embed COM types so that your application no longer requires a primary interop assembly (PIA) on the target computer. The `/link` option instructs the compiler to embed the COM type information from the referenced interop assembly into the resulting compiled code. The COM type is identified by the CLSID (GUID) value. As a result, your application can run on a target computer that has installed the same COM types with the same CLSID values. Applications that automate Microsoft Office are a good example. Because applications like Office usually keep the same CLSID value across different versions, your application can use the referenced COM types as long as .NET Framework 4 or later is installed on the target computer and your application uses methods, properties, or events that are included in the referenced COM types.
+
+ The `/link` option embeds only interfaces, structures, and delegates. Embedding COM classes is not supported.
+
+> [!NOTE]
+> When you create an instance of an embedded COM type in your code, you must create the instance by using the appropriate interface. Attempting to create an instance of an embedded COM type by using the CoClass causes an error.
+
+ To set the `/link` option in [!INCLUDE[vsprvs](../../../csharp/includes/vsprvs_md.md)], add an assembly reference and set the `Embed Interop Types` property to **true**. The default for the `Embed Interop Types` property is **false**.
+
+ If you link to a COM assembly (Assembly A) which itself references another COM assembly (Assembly B), you also have to link to Assembly B if either of the following is true:
+
+- A type from Assembly A inherits from a type or implements an interface from Assembly B.
+
+- A field, property, event, or method that has a return type or parameter type from Assembly B is invoked.
+
+ Like the [/reference](../../../csharp/language-reference/compiler-options/reference-compiler-option.md) compiler option, the `/link` compiler option uses the Csc.rsp response file, which references frequently used [!INCLUDE[dnprdnshort](../../../csharp/getting-started/includes/dnprdnshort_md.md)] assemblies. Use the [/noconfig](../../../csharp/language-reference/compiler-options/noconfig-compiler-option.md) compiler option if you do not want the compiler to use the Csc.rsp file.
+
+ The short form of `/link` is `/l`.
+
+## Generics and Embedded Types
+ The following sections describe the limitations on using generic types in applications that embed interop types.
+
+### Generic Interfaces
+ Generic interfaces that are embedded from an interop assembly cannot be used. This is shown in the following example.
+
+ [!code-cs[VbLinkCompilerCS#1](../../../csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_1.cs)]
+
+### Types That Have Generic Parameters
+ Types that have a generic parameter whose type is embedded from an interop assembly cannot be used if that type is from an external assembly. This restriction does not apply to interfaces. For example, consider the interface that is defined in the assembly. If a library embeds interop types from the assembly and exposes a method that returns a generic type that has a parameter whose type is the interface, that method must return a generic interface, as shown in the following code example.
+
+ [!code-cs[VbLinkCompilerCS#2](../../../csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_2.cs)]
+[!code-cs[VbLinkCompilerCS#3](../../../csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_3.cs)]
+[!code-cs[VbLinkCompilerCS#4](../../../csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_4.cs)]
+
+ In the following example, client code can call the method that returns the generic interface without error.
+
+ [!code-cs[VbLinkCompilerCS#5](../../../csharp/language-reference/compiler-options/codesnippet/CSharp/link-compiler-option_5.cs)]
+
+## Example
+ The following code compiles source file `OfficeApp.cs` and reference assemblies from `COMData1.dll` and `COMData2.dll` to produce `OfficeApp.exe`.
+
+```cs
+csc /link:COMData1.dll,COMData2.dll /out:OfficeApp.exe OfficeApp.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [Walkthrough: Embedding Types from Managed Assemblies](http://msdn.microsoft.com/library/b28ec92c-1867-4847-95c0-61adfe095e21)
+ [/reference (C# Compiler Options)](../../../csharp/language-reference/compiler-options/reference-compiler-option.md)
+ [/noconfig (C# Compiler Options)](../../../csharp/language-reference/compiler-options/noconfig-compiler-option.md)
+ [Command-line Building With csc.exe](../../../csharp/language-reference/compiler-options/command-line-building-with-csc-exe.md)
+ [Interoperability Overview](../../../csharp/programming-guide/interop/interoperability-overview.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/linkresource-compiler-option.md b/docs/csharp/language-reference/compiler-options/linkresource-compiler-option.md
new file mode 100644
index 0000000000000..241a9e6d04d33
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/linkresource-compiler-option.md
@@ -0,0 +1,103 @@
+---
+title: "-linkresource (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/linkresource"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/linkresource compiler option [C#]"
+ - "linkres compiler option [C#]"
+ - "/linkres compiler option [C#]"
+ - "-linkres compiler option [C#]"
+ - "-linkresource compiler option [C#]"
+ - "linkresource compiler option [C#]"
+ms.assetid: 440c26c2-77c1-4811-a0a3-57cce3f5fc96
+caps.latest.revision: 17
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /linkresource (C# Compiler Options)
+Creates a link to a .NET Framework resource in the output file. The resource file is not added to the output file. This differs from the [/resource](../../../csharp/language-reference/compiler-options/resource-compiler-option.md) option which does embed a resource file in the output file.
+
+## Syntax
+
+```
+/linkresource:filename[,identifier[,accessibility-modifier]]
+```
+
+## Arguments
+ `filename`
+ The .NET Framework resource file to which you want to link from the assembly.
+
+ `identifier` (optional)
+ The logical name for the resource; the name that is used to load the resource. The default is the name of the file.
+
+ `accessibility-modifier` (optional)
+ The accessibility of the resource: public or private. The default is public.
+
+## Remarks
+ By default, linked resources are public in the assembly when they are created with the C# compiler. To make the resources private, specify `private` as the accessibility modifier. No other modifier other than `public` or `private` is allowed.
+
+ **/linkresource** requires one of the [/target](../../../csharp/language-reference/compiler-options/target-compiler-option.md) options other than **/target:module**.
+
+ If `filename` is a .NET Framework resource file created, for example, by [Resgen.exe](http://msdn.microsoft.com/library/8ef159de-b660-4bec-9213-c3fbc4d1c6f4) or in the development environment, it can be accessed with members in the namespace. For more information, see . For all other resources, use the `GetManifestResource`* methods in the class to access the resource at run time.
+
+ The file specified in `filename` can be any format. For example, you may want to make a native DLL part of the assembly, so that it can be installed into the global assembly cache and accessed from managed code in the assembly. The second of the following examples shows how to do this. You can do the same thing in the Assembly Linker. The third of the following examples shows how to do this. For more information, see [Al.exe (Assembly Linker)](https://msdn.microsoft.com/library/c405shex) and [Working with Assemblies and the Global Assembly Cache](http://msdn.microsoft.com/library/8a18e5c2-d41d-49ef-abcb-7c27e2469433).
+
+ **/linkres** is the short form of **/linkresource**.
+
+ This compiler option is unavailable in Visual Studio and cannot be changed programmatically.
+
+## Example
+ Compile `in.cs` and link to resource file `rf.resource`:
+
+```
+csc /linkresource:rf.resource in.cs
+```
+
+## Example
+ Compile `A.cs` into a DLL, link to a native DLL N.dll, and put the output in the Global Assembly Cache (GAC). In this example, both A.dll and N.dll will reside in the GAC.
+
+```
+csc /linkresource:N.dll /t:library A.cs
+gacutil -i A.dll
+```
+
+## Example
+ This example does the same thing as the previous one, but by using Assembly Linker options.
+
+```
+csc /t:module A.cs
+al /out:A.dll A.netmodule /link:N.dll
+gacutil -i A.dll
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [Al.exe (Assembly Linker)](https://msdn.microsoft.com/library/c405shex)
+ [Working with Assemblies and the Global Assembly Cache](http://msdn.microsoft.com/library/8a18e5c2-d41d-49ef-abcb-7c27e2469433)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/listed-alphabetically.md b/docs/csharp/language-reference/compiler-options/listed-alphabetically.md
new file mode 100644
index 0000000000000..241156e870b3e
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/listed-alphabetically.md
@@ -0,0 +1,104 @@
+---
+title: "C# Compiler Options Listed Alphabetically | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+ - "CSharp"
+helpviewer_keywords:
+ - "compiler options [C#], listed alpabetically"
+ - "C# language, compiler options listed alphabitically"
+ - "Visual C# compiler, options listed alphabetically"
+ - "Visual C#, compiler options listed alphabetically"
+ms.assetid: 43535ea0-ca47-4a15-b528-615087a86092
+caps.latest.revision: 25
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# C# Compiler Options Listed Alphabetically
+The following compiler options are sorted alphabetically. For a categorical list, see [C# Compiler Options Listed by Category](../../../csharp/language-reference/compiler-options/listed-by-category.md).
+
+|Option|Purpose|
+|------------|-------------|
+|[@](../../../csharp/language-reference/compiler-options/response-file-compiler-option.md)|Reads a response file for more options.|
+|[/?](../../../csharp/language-reference/compiler-options/help-compiler-option.md)|Displays a usage message to stdout.|
+|`/additionalfile`|Names additional files that don't directly affect code generation but may be used by analyzers for producing errors or warnings.|
+|[/addmodule](../../../csharp/language-reference/compiler-options/addmodule-compiler-option.md)|Links the specified modules into this assembly|
+|`/analyzer`|Run the analyzers from this assembly (Short form: /a)|
+|[/appconfig](../../../csharp/language-reference/compiler-options/appconfig-compiler-option.md)|Specifies the location of app.config at assembly binding time.|
+|[/baseaddress](../../../csharp/language-reference/compiler-options/baseaddress-compiler-option.md)|Specifies the base address for the library to be built.|
+|[/bugreport](../../../csharp/language-reference/compiler-options/bugreport-compiler-option.md)|Creates a 'Bug Report' file. This file will be sent together with any crash information if it is used with **/errorreport:prompt** or **/errorreport:send**.|
+|[/checked](../../../csharp/language-reference/compiler-options/checked-compiler-option.md)|Causes the compiler to generate overflow checks.|
+|`/checksumalgorithm:`|Specify the algorithm for calculating the source file checksum stored in PDB. Supported values are: SHA1 (default) or SHA256.|
+|[/codepage](../../../csharp/language-reference/compiler-options/codepage-compiler-option.md)|Specifies the codepage to use when opening source files.|
+|[/debug](../../../csharp/language-reference/compiler-options/debug-compiler-option.md)|Emits debugging information.|
+|[/define](../../../csharp/language-reference/compiler-options/define-compiler-option.md)|Defines conditional compilation symbols.|
+|[/delaysign](../../../csharp/language-reference/compiler-options/delaysign-compiler-option.md)|Delay-signs the assembly by using only the public part of the strong name key.|
+|[/doc](../../../csharp/language-reference/compiler-options/doc-compiler-option.md)|Specifies an XML Documentation file to generate.|
+|[/errorreport](../../../csharp/language-reference/compiler-options/errorreport-compiler-option.md)|Specifies how to handle internal compiler errors: prompt, send, or none. The default is none.|
+|[/filealign](../../../csharp/language-reference/compiler-options/filealign-compiler-option.md)|Specifies the alignment used for output file sections.|
+|[/fullpaths](../../../csharp/language-reference/compiler-options/fullpaths-compiler-option.md)|Causes the compiler to generate fully qualified paths.|
+|[/help](../../../csharp/language-reference/compiler-options/help-compiler-option.md)|Displays a usage message to stdout.|
+|[/highentropyva](../../../csharp/language-reference/compiler-options/highentropyva-compiler-option.md)|Specifies that high entropy ASLR is supported.|
+|**/incremental**|Enables incremental compilation [obsolete].|
+|[/keycontainer](../../../csharp/language-reference/compiler-options/keycontainer-compiler-option.md)|Specifies a strong name key container.|
+|[/keyfile](../../../csharp/language-reference/compiler-options/keyfile-compiler-option.md)|Specifies a strong name key file.|
+|[/langversion:\](../../../csharp/language-reference/compiler-options/langversion-compiler-option.md)|Specify language version mode: ISO-1, ISO-2, 3, 4, 5, 6, or Default|
+|[/lib](../../../csharp/language-reference/compiler-options/lib-compiler-option.md)|Specifies additional directories in which to search for references.|
+|[/link](../../../csharp/language-reference/compiler-options/link-compiler-option.md)|Makes COM type information in specified assemblies available to the project.|
+|[/linkresource](../../../csharp/language-reference/compiler-options/linkresource-compiler-option.md)|Links the specified resource to this assembly.|
+|[/main](../../../csharp/language-reference/compiler-options/main-compiler-option.md)|Specifies the type that contains the entry point (ignore all other possible entry points).|
+|[/moduleassemblyname](../../../csharp/language-reference/compiler-options/moduleassemblyname-compiler-option.md)|Specifies an assembly whose non-public types a .netmodule can access.|
+|`/modulename:`|Specify the name of the source module|
+|[/noconfig](../../../csharp/language-reference/compiler-options/noconfig-compiler-option.md)|Instructs the compiler not to auto include CSC.RSP file.|
+|[/nologo](../../../csharp/language-reference/compiler-options/nologo-compiler-option.md)|Suppresses compiler copyright message.|
+|[/nostdlib](../../../csharp/language-reference/compiler-options/nostdlib-compiler-option.md)|Instructs the compiler not to reference standard library (mscorlib.dll).|
+|[/nowarn](../../../csharp/language-reference/compiler-options/nowarn-compiler-option.md)|Disables specific warning messages|
+|[/nowin32manifest](../../../csharp/language-reference/compiler-options/nowin32manifest-compiler-option.md)|Instructs the compiler not to embed an application manifest in the executable file.|
+|[/optimize](../../../csharp/language-reference/compiler-options/optimize-compiler-option.md)|Enables/disables optimizations.|
+|[/out](../../../csharp/language-reference/compiler-options/out-compiler-option.md)|Specifies the output file name (default: base name of file with main class or first file).|
+|`/parallel[+|-]`|Specifies whether to use concurrent build (+).|
+|[/pdb](../../../csharp/language-reference/compiler-options/pdb-compiler-option.md)|Specifies the file name and location of the .pdb file.|
+|[/platform](../../../csharp/language-reference/compiler-options/platform-compiler-option.md)|Limits which platforms this code can run on: x86, Itanium, x64, anycpu, or anycpu32bitpreferred. The default is anycpu.|
+|[/preferreduilang](../../../csharp/language-reference/compiler-options/preferreduilang-compiler-option.md)|Specifies the language to be used for compiler output.|
+|[/recurse](../../../csharp/language-reference/compiler-options/recurse-compiler-option.md)|Includes all files in the current directory and subdirectories according to the wildcard specifications.|
+|[/reference](../../../csharp/language-reference/compiler-options/reference-compiler-option.md)|References metadata from the specified assembly files.|
+|[/resource](../../../csharp/language-reference/compiler-options/resource-compiler-option.md)|Embeds the specified resource.|
+|`/ruleset:`|Specify a ruleset file that disables specific diagnostics.|
+|[/subsystemversion](../../../csharp/language-reference/compiler-options/subsystemversion-compiler-option.md)|Specifies the minimum version of the subsystem that the executable file can use.|
+|[/target](../../../csharp/language-reference/compiler-options/target-compiler-option.md)|Specifies the format of the output file by using one of four options:[/target:appcontainerexe](../../../csharp/language-reference/compiler-options/target-appcontainerexe-compiler-option.md), [/target:exe](../../../csharp/language-reference/compiler-options/target-exe-compiler-option.md), [/target:library](../../../csharp/language-reference/compiler-options/target-library-compiler-option.md), [/target:module](../../../csharp/language-reference/compiler-options/target-module-compiler-option.md), [/target:winexe](../../../csharp/language-reference/compiler-options/target-winexe-compiler-option.md), [/target:winmdobj](../../../csharp/language-reference/compiler-options/target-winmdobj-compiler-option.md).|
+|[/unsafe](../../../csharp/language-reference/compiler-options/unsafe-compiler-option.md)|Allows [unsafe](../../../csharp/language-reference/keywords/unsafe.md) code.|
+|[/utf8output](../../../csharp/language-reference/compiler-options/utf8output-compiler-option.md)|Outputs compiler messages in UTF-8 encoding.|
+|[/warn](../../../csharp/language-reference/compiler-options/warn-compiler-option.md)|Sets the warning level (0-4).|
+|[/warnaserror](../../../csharp/language-reference/compiler-options/warnaserror-compiler-option.md)|Reports specific warnings as errors.|
+|[/win32icon](../../../csharp/language-reference/compiler-options/win32icon-compiler-option.md)|Uses this icon for the output.|
+|[/win32manifest](../../../csharp/language-reference/compiler-options/win32manifest-compiler-option.md)|Specifies a custom win32 manifest file.|
+|[/win32res](../../../csharp/language-reference/compiler-options/win32res-compiler-option.md)|Specifies the win32 resource file (.res).|
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [C# Compiler Options Listed by Category](../../../csharp/language-reference/compiler-options/listed-by-category.md)
+ [How to: Set Environment Variables for the Visual Studio Command Line](../../../csharp/language-reference/compiler-options/how-to-set-environment-variables-for-the-visual-studio-command-line.md)
+ [\ Element](http://msdn.microsoft.com/library/7a151659-b803-4c27-b5ce-1c4aa0d5a823)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/listed-by-category.md b/docs/csharp/language-reference/compiler-options/listed-by-category.md
new file mode 100644
index 0000000000000..a2046e5a81c57
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/listed-by-category.md
@@ -0,0 +1,135 @@
+---
+title: "C# Compiler Options Listed by Category | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+ - "CSharp"
+helpviewer_keywords:
+ - "Visual C# compiler, options listed by category"
+ - "compiler options [C#], listed by category"
+ - "Visual C#, compiler options listed by category"
+ms.assetid: 96437ecc-6502-4cd3-b070-e9386a298e83
+caps.latest.revision: 17
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# C# Compiler Options Listed by Category
+The following compiler options are sorted by category. For an alphabetical list, see [C# Compiler Options Listed Alphabetically](../../../csharp/language-reference/compiler-options/listed-alphabetically.md).
+
+### Optimization
+
+|Option|Purpose|
+|------------|-------------|
+|[/filealign](../../../csharp/language-reference/compiler-options/filealign-compiler-option.md)|Specifies the size of sections in the output file.|
+|[/optimize](../../../csharp/language-reference/compiler-options/optimize-compiler-option.md)|Enables/disables optimizations.|
+
+### Output Files
+
+|Option|Purpose|
+|------------|-------------|
+|[/doc](../../../csharp/language-reference/compiler-options/doc-compiler-option.md)|Specifies an XML file where processed documentation comments are to be written.|
+|[/out](../../../csharp/language-reference/compiler-options/out-compiler-option.md)|Specifies the output file.|
+|[/pdb](../../../csharp/language-reference/compiler-options/pdb-compiler-option.md)|Specifies the file name and location of the .pdb file.|
+|[/platform](../../../csharp/language-reference/compiler-options/platform-compiler-option.md)|Specify the output platform.|
+|[/preferreduilang](../../../csharp/language-reference/compiler-options/preferreduilang-compiler-option.md)|Specify a language for compiler output.|
+|[/target](../../../csharp/language-reference/compiler-options/target-compiler-option.md)|Specifies the format of the output file using one of five options: [/target:appcontainerexe](../../../csharp/language-reference/compiler-options/target-appcontainerexe-compiler-option.md), [/target:exe](../../../csharp/language-reference/compiler-options/target-exe-compiler-option.md), [/target:library](../../../csharp/language-reference/compiler-options/target-library-compiler-option.md), [/target:module](../../../csharp/language-reference/compiler-options/target-module-compiler-option.md), [/target:winexe](../../../csharp/language-reference/compiler-options/target-winexe-compiler-option.md), or [/target:winmdobj](../../../csharp/language-reference/compiler-options/target-winmdobj-compiler-option.md).|
+|`/modulename:`|Specify the name of the source module|
+
+### .NET Framework Assemblies
+
+|Option|Purpose|
+|------------|-------------|
+|[/addmodule](../../../csharp/language-reference/compiler-options/addmodule-compiler-option.md)|Specifies one or more modules to be part of this assembly.|
+|[/delaysign](../../../csharp/language-reference/compiler-options/delaysign-compiler-option.md)|Instructs the compiler to add the public key but to leave the assembly unsigned.|
+|[/keycontainer](../../../csharp/language-reference/compiler-options/keycontainer-compiler-option.md)|Specifies the name of the cryptographic key container.|
+|[/keyfile](../../../csharp/language-reference/compiler-options/keyfile-compiler-option.md)|Specifies the filename containing the cryptographic key.|
+|[/lib](../../../csharp/language-reference/compiler-options/lib-compiler-option.md)|Specifies the location of assemblies referenced by means of [/reference](../../../csharp/language-reference/compiler-options/reference-compiler-option.md).|
+|[/nostdlib](../../../csharp/language-reference/compiler-options/nostdlib-compiler-option.md)|Instructs the compiler not to import the standard library (mscorlib.dll).|
+|[/reference](../../../csharp/language-reference/compiler-options/reference-compiler-option.md)|Imports metadata from a file that contains an assembly.|
+|`/analyzer`|Run the analyzers from this assembly (Short form: /a)|
+|`/additionalfile`|Names additional files that don't directly affect code generation but may be used by analyzers for producing errors or warnings.|
+
+### Debugging/Error Checking
+
+|Option|Purpose|
+|------------|-------------|
+|[/bugreport](../../../csharp/language-reference/compiler-options/bugreport-compiler-option.md)|Creates a file that contains information that makes it easy to report a bug.|
+|[/checked](../../../csharp/language-reference/compiler-options/checked-compiler-option.md)|Specifies whether integer arithmetic that overflows the bounds of the data type will cause an exception at run time.|
+|[/debug](../../../csharp/language-reference/compiler-options/debug-compiler-option.md)|Instruct the compiler to emit debugging information.|
+|[/errorreport](../../../csharp/language-reference/compiler-options/errorreport-compiler-option.md)|Sets error reporting behavior.|
+|[/fullpaths](../../../csharp/language-reference/compiler-options/fullpaths-compiler-option.md)|Specifies the absolute path to the file in compiler output.|
+|[/nowarn](../../../csharp/language-reference/compiler-options/nowarn-compiler-option.md)|Suppresses the compiler's generation of specified warnings.|
+|[/warn](../../../csharp/language-reference/compiler-options/warn-compiler-option.md)|Sets the warning level.|
+|[/warnaserror](../../../csharp/language-reference/compiler-options/warnaserror-compiler-option.md)|Promotes warnings to errors.|
+|`/ruleset:`|Specify a ruleset file that disables specific diagnostics.|
+
+### Preprocessor
+
+|Option|Purpose|
+|------------|-------------|
+|[/define](../../../csharp/language-reference/compiler-options/define-compiler-option.md)|Defines preprocessor symbols.|
+
+### Resources
+
+|Option|Purpose|
+|------------|-------------|
+|[/link](../../../csharp/language-reference/compiler-options/link-compiler-option.md)|Makes COM type information in specified assemblies available to the project.|
+|[/linkresource](../../../csharp/language-reference/compiler-options/linkresource-compiler-option.md)|Creates a link to a managed resource.|
+|[/resource](../../../csharp/language-reference/compiler-options/resource-compiler-option.md)|Embeds a .NET Framework resource into the output file.|
+|[/win32icon](../../../csharp/language-reference/compiler-options/win32icon-compiler-option.md)|Specifies an .ico file to insert into the output file.|
+|[/win32res](../../../csharp/language-reference/compiler-options/win32res-compiler-option.md)|Specifies a Win32 resource to insert into the output file.|
+
+### Miscellaneous
+
+|Option|Purpose|
+|------------|-------------|
+|[@](../../../csharp/language-reference/compiler-options/response-file-compiler-option.md)|Specifies a response file.|
+|[/?](../../../csharp/language-reference/compiler-options/help-compiler-option.md)|Lists compiler options to stdout.|
+|[/baseaddress](../../../csharp/language-reference/compiler-options/baseaddress-compiler-option.md)|Specifies the preferred base address at which to load a DLL.|
+|[/codepage](../../../csharp/language-reference/compiler-options/codepage-compiler-option.md)|Specifies the code page to use for all source code files in the compilation.|
+|[/help](../../../csharp/language-reference/compiler-options/help-compiler-option.md)|Lists compiler options to stdout.|
+|[/highentropyva](../../../csharp/language-reference/compiler-options/highentropyva-compiler-option.md)|Specifies that the executable file supports address space layout randomization (ASLR).|
+|[/langversion](../../../csharp/language-reference/compiler-options/langversion-compiler-option.md)|Specify language version mode: ISO-1, ISO-2, 3, 4, 5, 6, or Default|
+|[/main](../../../csharp/language-reference/compiler-options/main-compiler-option.md)|Specifies the location of the **Main** method.|
+|[/noconfig](../../../csharp/language-reference/compiler-options/noconfig-compiler-option.md)|Instructs the compiler not to compile with csc.rsp.|
+|[/nologo](../../../csharp/language-reference/compiler-options/nologo-compiler-option.md)|Suppresses compiler banner information.|
+|[/recurse](../../../csharp/language-reference/compiler-options/recurse-compiler-option.md)|Searches subdirectories for source files to compile.|
+|[/subsystemversion](../../../csharp/language-reference/compiler-options/subsystemversion-compiler-option.md)|Specifies the minimum version of the subsystem that the executable file can use.|
+|[/unsafe](../../../csharp/language-reference/compiler-options/unsafe-compiler-option.md)|Enables compilation of code that uses the [unsafe](../../../csharp/language-reference/keywords/unsafe.md) keyword.|
+|[/utf8output](../../../csharp/language-reference/compiler-options/utf8output-compiler-option.md)|Displays compiler output using UTF-8 encoding.|
+|`/parallel[+|-]`|Specifies whether to use concurrent build (+).|
+|`/checksumalgorithm:`|Specify the algorithm for calculating the source file checksum stored in PDB. Supported values are: SHA1 (default) or SHA256.|
+
+## Obsolete Options
+
+|||
+|---|---|
+|**/incremental**|Enables incremental compilation.|
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [C# Compiler Options Listed Alphabetically](../../../csharp/language-reference/compiler-options/listed-alphabetically.md)
+ [How to: Set Environment Variables for the Visual Studio Command Line](../../../csharp/language-reference/compiler-options/how-to-set-environment-variables-for-the-visual-studio-command-line.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/main-compiler-option.md b/docs/csharp/language-reference/compiler-options/main-compiler-option.md
new file mode 100644
index 0000000000000..c9bfbeb6577ef
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/main-compiler-option.md
@@ -0,0 +1,77 @@
+---
+title: "-main (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/main"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "-main compiler option [C#]"
+ - "main compiler option [C#]"
+ - "/main compiler option [C#]"
+ms.assetid: 975cf4d5-36ac-4530-826c-4aad0c7f2049
+caps.latest.revision: 14
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /main (C# Compiler Options)
+This option specifies the class that contains the entry point to the program, if more than one class contains a **Main** method.
+
+## Syntax
+
+```
+/main:class
+```
+
+## Arguments
+ `class`
+ The type that contains the **Main** method.
+
+## Remarks
+ If your compilation includes more than one type with a [Main](../../../csharp/programming-guide/main-and-command-args/main-and-command-line-arguments.md) method, you can specify which type contains the **Main** method that you want to use as the entry point into the program.
+
+ This option is for use when compiling an .exe file.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Application** property page.
+
+3. Modify the **Startup object** property.
+
+ To set this compiler option programmatically, see .
+
+## Example
+ Compile `t2.cs` and `t3.cs`, specifying that the **Main** method will be found in `Test2`:
+
+```
+csc t2.cs t3.cs /main:Test2
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/moduleassemblyname-compiler-option.md b/docs/csharp/language-reference/compiler-options/moduleassemblyname-compiler-option.md
new file mode 100644
index 0000000000000..ec191abd566c9
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/moduleassemblyname-compiler-option.md
@@ -0,0 +1,121 @@
+---
+title: "-moduleassemblyname (C# Compiler Option) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/moduleassemblyname"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "moduleassemblyname compiler option [C#]"
+ - "/moduleassemblyname compiler option [C#]"
+ - ".moduleassemblyname compiler option [C#]"
+ms.assetid: d464d9b9-f18d-423b-95e9-66c7878fd53a
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /moduleassemblyname (C# Compiler Option)
+Specifies an assembly whose non-public types a .netmodule can access.
+
+## Syntax
+
+```
+/moduleassemblyname:assembly_name
+```
+
+## Arguments
+ `assembly_name`
+ The name of the assembly whose non-public types the .netmodule can access.
+
+## Remarks
+ **/moduleassemblyname** should be used when building a .netmodule, and where the following conditions are true:
+
+- The .netmodule needs access to non-public types in an existing assembly.
+
+- You know the name of the assembly into which the .netmodule will be built.
+
+- The existing assembly has granted friend assembly access to the assembly into which the .netmodule will be built.
+
+ For more information on building a .netmodule, see [/target:module (C# Compiler Options)](../../../csharp/language-reference/compiler-options/target-module-compiler-option.md).
+
+ For more information on friend assemblies, see [Friend Assemblies](http://msdn.microsoft.com/library/df0c70ea-2c2a-4bdc-9526-df951ad2d055).
+
+ This option is not available from within the development environment; it is only available when compiling from the command line.
+
+ This compiler option is unavailable in Visual Studio and cannot be changed programmatically.
+
+## Example
+ This sample builds an assembly with a private type, and that gives friend assembly access to an assembly called csman_an_assembly.
+
+```
+// moduleassemblyname_1.cs
+// compile with: /target:library
+using System;
+using System.Runtime.CompilerServices;
+
+[assembly:InternalsVisibleTo ("csman_an_assembly")]
+
+class An_Internal_Class
+{
+ public void Test()
+ {
+ Console.WriteLine("An_Internal_Class.Test called");
+ }
+}
+```
+
+## Example
+ This sample builds a .netmodule that accesses a non-public type in the assembly moduleassemblyname_1.dll. By knowing that this .netmodule will be built into an assembly called csman_an_assembly, we can specify **/moduleassemblyname**, allowing the .netmodule to access non-public types in an assembly that has granted friend assembly access to csman_an_assembly.
+
+```
+// moduleassemblyname_2.cs
+// compile with: /moduleassemblyname:csman_an_assembly /target:module /reference:moduleassemblyname_1.dll
+class B {
+ public void Test() {
+ An_Internal_Class x = new An_Internal_Class();
+ x.Test();
+ }
+}
+```
+
+## Example
+ This code sample builds the assembly csman_an_assembly, referencing the previously-built assembly and .netmodule.
+
+```
+// csman_an_assembly.cs
+// compile with: /addmodule:moduleassemblyname_2.netmodule /reference:moduleassemblyname_1.dll
+class A {
+ public static void Main() {
+ B bb = new B();
+ bb.Test();
+ }
+}
+```
+
+ **An_Internal_Class.Test called**
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/noconfig-compiler-option.md b/docs/csharp/language-reference/compiler-options/noconfig-compiler-option.md
new file mode 100644
index 0000000000000..0a410e077b802
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/noconfig-compiler-option.md
@@ -0,0 +1,63 @@
+---
+title: "-noconfig (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/noconfig"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/noconfig compiler option [C#]"
+ - "csc.rsp"
+ - "-noconfig compiler option [C#]"
+ - "noconfig compiler option [C#]"
+ms.assetid: cd26967e-e494-4c8c-b5c9-af13b2f78b2e
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /noconfig (C# Compiler Options)
+The **/noconfig** option tells the compiler not to compile with the csc.rsp file, which is located in and loaded from the same directory as the csc.exe file.
+
+## Syntax
+
+```
+/noconfig
+```
+
+## Remarks
+ The csc.rsp file references all the assemblies shipped with the .NET Framework. The actual references that the Visual Studio .NET development environment includes depend on the project type.
+
+ You can modify the csc.rsp file and specify additional compiler options that should be included in every compilation from the command line with csc.exe (except the **/noconfig** option).
+
+ The compiler processes the options passed to the **csc** command last. Therefore, any option on the command line overrides the setting of the same option in the csc.rsp file.
+
+ If you do not want the compiler to look for and use the settings in the csc.rsp file, specify **/noconfig**.
+
+ This compiler option is unavailable in Visual Studio and cannot be changed programmatically.
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/nologo-compiler-option.md b/docs/csharp/language-reference/compiler-options/nologo-compiler-option.md
new file mode 100644
index 0000000000000..7b4605a6caa27
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/nologo-compiler-option.md
@@ -0,0 +1,57 @@
+---
+title: "-nologo (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/nologo"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "-nologo compiler option [C#]"
+ - "nologo compiler option [C#]"
+ - "banners, suppressing startup"
+ - "/nologo compiler option [C#]"
+ms.assetid: 426afb36-a8fb-469d-9c45-a35d9512557c
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /nologo (C# Compiler Options)
+The **/nologo** option suppresses display of the sign-on banner when the compiler starts up and display of informational messages during compiling.
+
+## Syntax
+
+```
+/nologo
+```
+
+## Remarks
+ This option is not available from within the development environment; it is only available when compiling from the command line.
+
+ This compiler option is unavailable in Visual Studio and cannot be changed programmatically.
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/nostdlib-compiler-option.md b/docs/csharp/language-reference/compiler-options/nostdlib-compiler-option.md
new file mode 100644
index 0000000000000..90ae6ea9449e6
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/nostdlib-compiler-option.md
@@ -0,0 +1,68 @@
+---
+title: "-nostdlib (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/nostdlib"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "nostdlib compiler option [C#]"
+ - "-nostdlib compiler option [C#]"
+ - "/nostdlib compiler option [C#]"
+ms.assetid: ec197989-fa49-4725-a455-e06b551eb65f
+caps.latest.revision: 18
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# /nostdlib (C# Compiler Options)
+**/nostdlib** prevents the import of mscorlib.dll, which defines the entire System namespace.
+
+## Syntax
+
+```
+/nostdlib[+ | -]
+```
+
+## Remarks
+ Use this option if you want to define or create your own System namespace and objects.
+
+ If you do not specify **/nostdlib**, mscorlib.dll will be imported into your program (same as specifying **/nostdlib-**). Specifying **/nostdlib** is the same as specifying **/nostdlib+**.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the **Properties** page for the project.
+
+2. Click the **Build** properties page.
+
+3. Click the **Advanced** button.
+
+4. Modify the **Do not reference mscorlib.dll** property.
+
+ For information on how to set this compiler option programmatically, see .
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/nowarn-compiler-option.md b/docs/csharp/language-reference/compiler-options/nowarn-compiler-option.md
new file mode 100644
index 0000000000000..a7627dce4bf91
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/nowarn-compiler-option.md
@@ -0,0 +1,79 @@
+---
+title: "-nowarn (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/nowarn"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "nowarn compiler option [C#]"
+ - "/nowarn compiler option [C#]"
+ - "-nowarn compiler option [C#]"
+ms.assetid: 6dcbc5e8-ae67-4566-9df3-f63cfdd9c4e4
+caps.latest.revision: 24
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /nowarn (C# Compiler Options)
+The **/nowarn** option lets you suppress the compiler from displaying one or more warnings. Separate multiple warning numbers with a comma.
+
+## Syntax
+
+```
+/nowarn:number1[,number2,...]
+```
+
+## Arguments
+ `number1`, `number2`
+ Warning number(s) that you want the compiler to suppress.
+
+## Remarks
+ You should only specify the numeric part of the warning identifier. For example, if you want to suppress CS0028, you could specify `/nowarn:28`.
+
+ The compiler will silently ignore warning numbers passed to `/nowarn` that were valid in previous releases, but that have been removed from the compiler. For example, CS0679 was valid in the compiler in Visual Studio .NET 2002 but was subsequently removed.
+
+ The following warnings cannot be suppressed by the `/nowarn` option:
+
+- Compiler Warning (level 1) CS2002
+
+- Compiler Warning (level 1) CS2023
+
+- Compiler Warning (level 1) CS2029
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the **Properties** page for the project. For details, see [Build Page, Project Designer (C#)](/visualstudio/ide/reference/build-page-project-designer-csharp).
+
+2. Click the **Build** property page.
+
+3. Modify the **Suppress Warnings** property.
+
+ For information about how to set this compiler option programmatically, see .
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
+ [C# Compiler Errors](../../../csharp/language-reference/compiler-messages/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/nowin32manifest-compiler-option.md b/docs/csharp/language-reference/compiler-options/nowin32manifest-compiler-option.md
new file mode 100644
index 0000000000000..9662b9ab9814e
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/nowin32manifest-compiler-option.md
@@ -0,0 +1,58 @@
+---
+title: "-nowin32manifest (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/nowin32manifest"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "nowin32manifest compiler option [C#]"
+ - "-nowin32manifest compiler option [C#]"
+ - "/nowin32manifest compiler option [C#]"
+ms.assetid: 6f06365b-b87b-46a2-b187-b3bfeaf4862d
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /nowin32manifest (C# Compiler Options)
+Use the **/nowin32manifest** option to instruct the compiler not to embed any application manifest into the executable file.
+
+## Syntax
+
+```
+/nowin32manifest
+```
+
+## Remarks
+ When this option is used, the application will be subject to virtualization on Windows Vista unless you provide an application manifest in a Win32 Resource file or during a later build step.
+
+ In Visual Studio, set this option in the **Application Property** page by selecting the **Create Application Without a Manifest** option in the **Manifest** drop down list. For more information, see [Application Page, Project Designer (C#)](/visualstudio/ide/reference/application-page-project-designer-csharp).
+
+ For more information about manifest creation, see [/win32manifest (C# Compiler Options)](../../../csharp/language-reference/compiler-options/win32manifest-compiler-option.md).
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/optimize-compiler-option.md b/docs/csharp/language-reference/compiler-options/optimize-compiler-option.md
new file mode 100644
index 0000000000000..f0d2378f8d980
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/optimize-compiler-option.md
@@ -0,0 +1,83 @@
+---
+title: "-optimize (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/optimize"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/optimize compiler option [C#]"
+ - "-o compiler option [C#]"
+ - "optimize compiler option [C#]"
+ - "/o compiler option [C#]"
+ - "-optimize compiler option [C#]"
+ - "compiler optimization [C#]"
+ - "o compiler option [C#]"
+ms.assetid: 6dd5b6f2-cd1d-4593-a9f4-1c2ed9404ca0
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /optimize (C# Compiler Options)
+The **/optimize** option enables or disables optimizations performed by the compiler to make your output file smaller, faster, and more efficient.
+
+## Syntax
+
+```
+/optimize[+ | -]
+```
+
+## Remarks
+ **/optimize** also tells the common language runtime to optimize code at runtime.
+
+ By default, optimizations are disabled. Specify **/optimize+** to enable optimizations.
+
+ When building a module to be used by an assembly, use the same **/optimize** settings as those of the assembly.
+
+ **/o** is the short form of **/optimize**.
+
+ It is possible to combine the **/optimize** and [/debug](../../../csharp/language-reference/compiler-options/debug-compiler-option.md) options.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Build** property page.
+
+3. Modify the **Optimize Code** property.
+
+ For information on how to set this compiler option programmatically, see .
+
+## Example
+ Compile `t2.cs` and enable compiler optimizations:
+
+```
+csc t2.cs /optimize
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/out-compiler-option.md b/docs/csharp/language-reference/compiler-options/out-compiler-option.md
new file mode 100644
index 0000000000000..caf867ea89aa3
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/out-compiler-option.md
@@ -0,0 +1,92 @@
+---
+title: "-out (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/out"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/out compiler option [C#]"
+ - "out compiler option [C#]"
+ - "-out compiler option [C#]"
+ms.assetid: 70d91d01-7bd2-4aea-ba8b-4e9807e9caa5
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /out (C# Compiler Options)
+The **/out** option specifies the name of the output file.
+
+## Syntax
+
+```
+/out:filename
+```
+
+## Arguments
+ `filename`
+ The name of the output file created by the compiler.
+
+## Remarks
+ On the command line, it is possible to specify multiple output files for your compilation. The compiler expects to find one or more source code files following the **/out** option. Then, all source code files will be compiled into the output file specified by that **/out** option.
+
+ Specify the full name and extension of the file you want to create.
+
+ If you do not specify the name of the output file:
+
+- An .exe will take its name from the source code file that contains the **Main** method.
+
+- A .dll or .netmodule will take its name from the first source code file.
+
+ A source code file used to compile one output file cannot be used in the same compilation for the compilation of another output file.
+
+ When producing multiple output files in a command-line compilation, keep in mind that only one of the output files can be an assembly and that only the first output file specified (implicitly or explicitly with **/out**) can be the assembly.
+
+ Any modules produced as part of a compilation become files associated with any assembly also produced in the compilation. Use [ildasm.exe](https://msdn.microsoft.com/library/f7dy01k1) to view the assembly manifest to see the associated files.
+
+ The /out compiler option is required in order for an exe to be the target of a friend assembly. For more information see [Friend Assemblies](http://msdn.microsoft.com/library/df0c70ea-2c2a-4bdc-9526-df951ad2d055).
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Application** property page.
+
+3. Modify the **Assembly name** property.
+
+ To set this compiler option programmatically: the is a read-only property, which is determined by a combination of the project type (exe, library, and so forth) and the assembly name. Modifying one or both of these properties will be necessary to set the output file name.
+
+## Example
+ Compile `t.cs` and create output file `t.exe`, as well as build `t2.cs` and create module output file `mymodule.netmodule`:
+
+```
+csc t.cs /out:mymodule.netmodule /target:module t2.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [Friend Assemblies](http://msdn.microsoft.com/library/df0c70ea-2c2a-4bdc-9526-df951ad2d055)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/pdb-compiler-option.md b/docs/csharp/language-reference/compiler-options/pdb-compiler-option.md
new file mode 100644
index 0000000000000..16becba8b882f
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/pdb-compiler-option.md
@@ -0,0 +1,69 @@
+---
+title: "-pdb (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/pdb"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "-pdb compiler option [C#]"
+ - "pdb compiler option [C#]"
+ - "/pdb compiler option [C#]"
+ms.assetid: e9d0f96a-5b75-45d6-9765-92538dd5f823
+caps.latest.revision: 8
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /pdb (C# Compiler Options)
+The **/pdb** compiler option specifies the name and location of the debug symbols file.
+
+## Syntax
+
+```
+/pdb:filename
+```
+
+## Arguments
+ `filename`
+ The name and location of the debug symbols file.
+
+## Remarks
+ When you specify [/debug (C# Compiler Options)](../../../csharp/language-reference/compiler-options/debug-compiler-option.md), the compiler will create a .pdb file in the same directory where the compiler will create the output file (.exe or .dll) with a file name that is the same as the name of the output file.
+
+ **/pdb** allows you to specify a non-default file name and location for the .pdb file.
+
+ This compiler option cannot be set in the Visual Studio development environment, nor can it be changed programmatically.
+
+## Example
+ Compile `t.cs` and create a .pdb file called tt.pdb:
+
+```
+csc /debug /pdb:tt t.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/platform-compiler-option.md b/docs/csharp/language-reference/compiler-options/platform-compiler-option.md
new file mode 100644
index 0000000000000..0445d5f0a2c2d
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/platform-compiler-option.md
@@ -0,0 +1,102 @@
+---
+title: "-platform (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/platform"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "platform compiler option [C#]"
+ - "-platform compiler option [C#]"
+ - "/platform compiler option [C#]"
+ms.assetid: c290ff5e-47f4-4a85-9bb3-9c2525b0be04
+caps.latest.revision: 46
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /platform (C# Compiler Options)
+Specifies which version of the common language runtime (CLR) can run the assembly.
+
+## Syntax
+
+```
+/platform:string
+```
+
+#### Parameters
+ `string`
+ anycpu (default), anycpu32bitpreferred, ARM, x64, x86, or Itanium.
+
+## Remarks
+
+- **anycpu** (default) compiles your assembly to run on any platform. Your application runs as a 64-bit process whenever possible and falls back to 32-bit when only that mode is available.
+
+- **anycpu32bitpreferred** compiles your assembly to run on any platform. Your application runs in 32-bit mode on systems that support both 64-bit and 32-bit applications. You can specify this option only for projects that target the .NET Framework 4.5.
+
+- **ARM** compiles your assembly to run on a computer that has an Advanced RISC Machine (ARM) processor.
+
+- **x64** compiles your assembly to be run by the 64-bit common language runtime on a computer that supports the AMD64 or EM64T instruction set.
+
+- **x86** compiles your assembly to be run by the 32-bit, x86-compatible common language runtime.
+
+- **Itanium** compiles your assembly to be run by the 64-bit common language runtime on a computer with an Itanium processor.
+
+ On a 64-bit Windows operating system:
+
+- Assemblies compiled with **/platform:x86** execute on the 32-bit CLR running under WOW64.
+
+- A DLL compiled with the **/platform:anycpu** executes on the same CLR as the process into which it is loaded.
+
+- Executables that are compiled with the **/platform:anycpu** execute on the 64-bit CLR.
+
+- Executables compiled with **/platform:anycpu32bitpreferred** execute on the 32-bit CLR.
+
+ The **anycpu32bitpreferred** setting is valid only for executable (.EXE) files, and it requires the .NET Framework 4.5.
+
+ For more information about developing an application to run on a Windows 64-bit operating system, see [64-bit Applications](https://msdn.microsoft.com/library/ms241064).
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the **Properties** page for the project.
+
+2. Click the **Build** property page.
+
+3. Modify the **Platform target** property and, for projects that target the .NET Framework 4.5, select or clear the **Prefer 32-bit** check box.
+
+ **Note /platform** is not available in the development environment in Visual C# Express.
+
+ For information on how to set this compiler option programmatically, see .
+
+## Example
+ The following example shows how to use the **/platform** option to specify that the application should be run by the 64-bit CLR on a 64-bit Windows operating system.
+
+```
+csc /platform:anycpu filename.cs
+```
+
+## See Also
+ [C# Compiler Options](index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/preferreduilang-compiler-option.md b/docs/csharp/language-reference/compiler-options/preferreduilang-compiler-option.md
new file mode 100644
index 0000000000000..bc685be71f63e
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/preferreduilang-compiler-option.md
@@ -0,0 +1,63 @@
+---
+title: "-preferreduilang (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/preferreduilang"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "preferreduilang compiler option [C#]"
+ - "/preferreduilang compiler option [C#]"
+ - "-preferreduilang compiler option [C#]"
+ms.assetid: 68b2462f-6778-48d7-8052-62805fe8e02c
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /preferreduilang (C# Compiler Options)
+By using the `/preferreduilang` compiler option, you can specify the language in which the C# compiler displays output, such as error messages.
+
+## Syntax
+
+```
+/preferreduilang: language
+```
+
+## Arguments
+ `language`
+ The [language name](http://go.microsoft.com/fwlink/p/?LinkId=236992) of the language to use for compiler output.
+
+## Remarks
+ You can use the `/preferreduilang` compiler option to specify the language that you want the C# compiler to use for error messages and other command-line output. If the language pack for the language is not installed, the language setting of the operating system is used instead, and no error is reported.
+
+```cs
+csc.exe /preferreduilang:ja-JP
+```
+
+## Requirements
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/recurse-compiler-option.md b/docs/csharp/language-reference/compiler-options/recurse-compiler-option.md
new file mode 100644
index 0000000000000..17bc076c03dba
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/recurse-compiler-option.md
@@ -0,0 +1,78 @@
+---
+title: "-recurse (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/recurse"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/recurse compiler option [C#]"
+ - "recurse compiler option [C#]"
+ - "-recurse compiler option [C#]"
+ms.assetid: 4e8212e5-04e3-45b1-8a42-41bc50e683b0
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /recurse (C# Compiler Options)
+The /recurse option enables you to compile source code files in all child directories of either the specified directory (dir) or of the project directory.
+
+## Syntax
+
+```
+/recurse:[dir\]file
+```
+
+## Arguments
+ `dir` (optional)
+ The directory in which you want the search to begin. If this is not specified, the search begins in the project directory.
+
+ `file`
+ The file(s) to search for. Wildcard characters are allowed.
+
+## Remarks
+ The **/recurse** option lets you compile source code files in all child directories of either the specified directory (`dir`) or of the project directory.
+
+ You can use wildcards in a file name to compile all matching files in the project directory without using **/recurse**.
+
+ This compiler option is unavailable in Visual Studio and cannot be changed programmatically.
+
+## Example
+ Compiles all C# files in the current directory:
+
+```
+csc *.cs
+```
+
+ Compiles all of the C# files in the dir1\dir2 directory and any directories below it and generates dir2.dll:
+
+```
+csc /target:library /out:dir2.dll /recurse:dir1\dir2\*.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/reference-compiler-option.md b/docs/csharp/language-reference/compiler-options/reference-compiler-option.md
new file mode 100644
index 0000000000000..80dc505666ac3
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/reference-compiler-option.md
@@ -0,0 +1,117 @@
+---
+title: "-reference (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/reference"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/r compiler option [C#]"
+ - "reference compiler option [C#]"
+ - "r compiler option [C#]"
+ - "/reference compiler option [C#]"
+ - "-r compiler option [C#]"
+ - "metadata import [C#]"
+ - "public type information [C#]"
+ - "-reference compiler option [C#]"
+ms.assetid: 8d13e5b0-abf6-4c46-bf71-2daf2cd0a6c4
+caps.latest.revision: 28
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /reference (C# Compiler Options)
+The **/reference** option causes the compiler to import [public](../../../csharp/language-reference/keywords/public.md) type information in the specified file into the current project, thus enabling you to reference metadata from the specified assembly files.
+
+## Syntax
+
+```
+/reference:[alias=]filename
+/reference:filename
+```
+
+## Arguments
+ `filename`
+ The name of a file that contains an assembly manifest. To import more than one file, include a separate **/reference** option for each file.
+
+ `alias`
+ A valid C# identifier that will represent a root namespace that will contain all namespaces in the assembly.
+
+## Remarks
+ To import from more than one file, include a **/reference** option for each file.
+
+ The files you import must contain a manifest; the output file must have been compiled with one of the [/target](../../../csharp/language-reference/compiler-options/target-compiler-option.md) options other than [/target:module](../../../csharp/language-reference/compiler-options/target-module-compiler-option.md).
+
+ **/r** is the short form of **/reference**.
+
+ Use [/addmodule](../../../csharp/language-reference/compiler-options/addmodule-compiler-option.md) to import metadata from an output file that does not contain an assembly manifest.
+
+ If you reference an assembly (Assembly A) that references another assembly (Assembly B), you will need to reference Assembly B if:
+
+- A type you use from Assembly A inherits from a type or implements an interface from Assembly B.
+
+- You invoke a field, property, event, or method that has a return type or parameter type from Assembly B.
+
+ Use [/lib](../../../csharp/language-reference/compiler-options/lib-compiler-option.md) to specify the directory in which one or more of your assembly references is located. The **/lib** topic also discusses the directories in which the compiler searches for assemblies.
+
+ In order for the compiler to recognize a type in an assembly, and not in a module, it needs to be forced to resolve the type, which you can do by defining an instance of the type. There are other ways to resolve type names in an assembly for the compiler: for example, if you inherit from a type in an assembly, the type name will then be recognized by the compiler.
+
+ Sometimes it is necessary to reference two different versions of the same component from within one assembly. To do this, use the alias suboption on the **/reference** switch for each file to distinguish between the two files. This alias will be used as a qualifier for the component name, and will resolve to the component in one of the files.
+
+ The csc response (.rsp) file, which references commonly used .NET Framework assemblies, is used by default. Use [/noconfig](../../../csharp/language-reference/compiler-options/noconfig-compiler-option.md) if you do not want the compiler to use csc.rsp.
+
+> [!NOTE]
+> In Visual Studio, use the **Add Reference** dialog box. For more information, see [NIB How to: Add or Remove References By Using the Add Reference Dialog Box](http://msdn.microsoft.com/en-us/3bd75d61-f00c-47c0-86a2-dd1f20e231c9). In Visual Studio 2010 and later versions, to ensure equivalent behavior between adding references by using `/reference` and by using the **Add Reference** dialog box, the **Embed Interop Types** property must be set to **False** for the assembly that you are adding. **True** is the default value for that property.
+
+## Example
+ This example shows how to use the [extern alias](../../../csharp/language-reference/keywords/extern-alias.md) feature.
+
+ You compile the source file and import metadata from `grid.dll` and `grid20.dll`,which have been compiled previously. The two DLLs contain separate versions of the same component, and you use two **/reference** with alias options to compile the source file. The options look like this:
+
+ /reference:GridV1=grid.dll and /reference:GridV2=grid20.dll
+
+ This sets up the external aliases "GridV1" and "GridV2," which you use in your program by means of an extern statement:
+
+```
+extern alias GridV1;
+extern alias GridV2;
+// Using statements go here.
+```
+
+ Once this is done, you can refer to the grid control from grid.dll by prefixing the control name with GridV1, like this:
+
+```
+GridV1::Grid
+```
+
+ In addition, you can refer to the grid control from grid20.dll by prefixing the control name with GridV2 like this:
+
+```
+GridV2::Grid
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/resource-compiler-option.md b/docs/csharp/language-reference/compiler-options/resource-compiler-option.md
new file mode 100644
index 0000000000000..9c99af936b891
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/resource-compiler-option.md
@@ -0,0 +1,94 @@
+---
+title: "-resource (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/resource"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "-resource compiler option [C#]"
+ - "/resource compiler option [C#]"
+ - "-res compiler option [C#]"
+ - "/res compiler option [C#]"
+ - "res compiler option [C#]"
+ - "resource compiler option [C#]"
+ms.assetid: 5212666e-98ab-47e4-a497-b5545ab15c7f
+caps.latest.revision: 16
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /resource (C# Compiler Options)
+Embeds the specified resource into the output file.
+
+## Syntax
+
+```
+/resource:filename[,identifier[,accessibility-modifier]]
+```
+
+## Arguments
+ `filename`
+ The .NET Framework resource file that you want to embed in the output file.
+
+ `identifier` (optional)
+ The logical name for the resource; the name that is used to load the resource. The default is the name of the file name.
+
+ `accessibility-modifier` (optional)
+ The accessibility of the resource: public or private. The default is public.
+
+## Remarks
+ Use [/linkresource](../../../csharp/language-reference/compiler-options/linkresource-compiler-option.md) to link a resource to an assembly and not add the resource file to the output file.
+
+ By default, resources are public in the assembly when they are created by using the C# compiler. To make the resources private, specify `private` as the accessibility modifier. No other accessibility other than `public` or `private` is allowed.
+
+ If `filename` is a .NET Framework resource file created, for example, by [Resgen.exe](http://msdn.microsoft.com/library/8ef159de-b660-4bec-9213-c3fbc4d1c6f4) or in the development environment, it can be accessed with members in the namespace. For more information, see . For all other resources, use the `GetManifestResource`* methods in the class to access the resource at run time.
+
+ **/res** is the short form of **/resource**.
+
+ The order of the resources in the output file is determined from the order specified on the command line.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Add a resource file to your project.
+
+2. Select the file that you want to embed in **Solution Explorer**.
+
+3. Select **Build Action** for the file in the **Properties** window.
+
+4. Set **Build Action** to **Embedded Resource**.
+
+ For information about how to set this compiler option programmatically, see .
+
+## Example
+ Compile `in.cs` and attach resource file `rf.resource`:
+
+```
+csc /resource:rf.resource in.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/response-file-compiler-option.md b/docs/csharp/language-reference/compiler-options/response-file-compiler-option.md
new file mode 100644
index 0000000000000..62456ccef308e
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/response-file-compiler-option.md
@@ -0,0 +1,81 @@
+---
+title: "@ (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "@"
+dev_langs:
+ - "CSharp"
+ - "CSharp"
+helpviewer_keywords:
+ - "response files, specifying for compilation [C#]"
+ - "@ compiler option"
+ms.assetid: dda4fa9f-a02c-400f-8b6a-d58834e13d7f
+caps.latest.revision: 9
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# @ (C# Compiler Options)
+The @ option lets you specify a file that contains compiler options and source code files to compile.
+
+## Syntax
+
+```
+@response_file
+```
+
+## Arguments
+ `response_file`
+ A file that lists compiler options or source code files to compile.
+
+## Remarks
+ The compiler options and source code files will be processed by the compiler just as if they had been specified on the command line.
+
+ To specify more than one response file in a compilation, specify multiple response file options. For example:
+
+```
+@file1.rsp @file2.rsp
+```
+
+ In a response file, multiple compiler options and source code files can appear on one line. A single compiler option specification must appear on one line (cannot span multiple lines). Response files can have comments that begin with the # symbol.
+
+ Specifying compiler options from within a response file is just like issuing those commands on the command line. See [Building from the Command Line](../../../csharp/language-reference/compiler-options/how-to-set-environment-variables-for-the-visual-studio-command-line.md) for more information.
+
+ The compiler processes the command options as they are encountered. Therefore, command line arguments can override previously listed options in response files. Conversely, options in a response file will override options listed previously on the command line or in other response files.
+
+ C# provides the csc.rsp file, which is located in the same directory as the csc.exe file. See [/noconfig](../../../csharp/language-reference/compiler-options/noconfig-compiler-option.md) for more information on csc.rsp.
+
+ This compiler option cannot be set in the Visual Studio development environment, nor can it be changed programmatically.
+
+## Example
+ The following are a few lines from a sample response file:
+
+```
+# build the first output file
+/target:exe /out:MyExe.exe source1.cs source2.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/subsystemversion-compiler-option.md b/docs/csharp/language-reference/compiler-options/subsystemversion-compiler-option.md
new file mode 100644
index 0000000000000..c9c690d25fced
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/subsystemversion-compiler-option.md
@@ -0,0 +1,84 @@
+---
+title: "-subsystemversion (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+ms.assetid: a99fce81-9d92-4813-9874-bee777041445
+caps.latest.revision: 19
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /subsystemversion (C# Compiler Options)
+Specifies the minimum version of the subsystem on which the generated executable file can run, thereby determining the versions of Windows on which the executable file can run. Most commonly, this option ensures that the executable file can leverage particular security features that aren’t available with older versions of Windows.
+
+> [!NOTE]
+> To specify the subsystem itself, use the [/target](../../../csharp/language-reference/compiler-options/target-compiler-option.md) compiler option.
+
+## Syntax
+
+```
+/subsystemversion:major.minor
+```
+
+#### Parameters
+ `major.minor`
+ The minimum required version of the subsystem, as expressed in a dot notation for major and minor versions. For example, you can specify that an application can't run on an operating system that's older than Windows 7 if you set the value of this option to 6.01, as the table later in this topic describes. You must specify the values for `major` and `minor` as integers.
+
+ Leading zeroes in the `minor` version don't change the version, but trailing zeroes do. For example, 6.1 and 6.01 refer to the same version, but 6.10 refers to a different version. We recommend expressing the minor version as two digits to avoid confusion.
+
+## Remarks
+ The following table lists common subsystem versions of Windows.
+
+|Windows version|Subsystem version|
+|---------------------|-----------------------|
+|Windows 2000|5.00|
+|Windows XP|5.01|
+|Windows Server 2003|5.02|
+|Windows Vista|6.00|
+|Windows 7|6.01|
+|Windows Server 2008|6.01|
+|[!INCLUDE[win8](../../../csharp/language-reference/compiler-options/includes/win8_md.md)]|6.02|
+
+## Default values
+ The default value of the **/subsystemversion** compiler option depends on the conditions in the following list:
+
+- The default value is 6.02 if any compiler option in the following list is set:
+
+ - [/target:appcontainerexe](../../../csharp/language-reference/compiler-options/target-appcontainerexe-compiler-option.md)
+
+ - [/target:winmdobj](../../../csharp/language-reference/compiler-options/target-winmdobj-compiler-option.md)
+
+ - [/platform:arm](../../../csharp/language-reference/compiler-options/platform-compiler-option.md)
+
+- The default value is 6.00 if you're using MSBuild, you're targeting [!INCLUDE[net_v45](../../../csharp/language-reference/compiler-options/includes/net_v45_md.md)], and you haven't set any of the compiler options that were specified earlier in this list.
+
+- The default value is 4.00 if none of the previous conditions is true.
+
+## Setting this option
+ To set the **/subsystemversion** compiler option in Visual Studio, you must open the .csproj file and specify a value for the `SubsystemVersion` property in the MSBuild XML. You can't set this option in the Visual Studio IDE. For more information, see "Default values" earlier in this topic or [Common MSBuild Project Properties](/visualstudio/msbuild/common-msbuild-project-properties).
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/target-appcontainerexe-compiler-option.md b/docs/csharp/language-reference/compiler-options/target-appcontainerexe-compiler-option.md
new file mode 100644
index 0000000000000..7c0518b125116
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/target-appcontainerexe-compiler-option.md
@@ -0,0 +1,71 @@
+---
+title: "-target:appcontainerexe (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+ms.assetid: e7e62229-23ea-4e53-bef5-380d951bf95f
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# /target:appcontainerexe (C# Compiler Options)
+If you use the **/target:appcontainerexe** compiler option, the compiler creates a Windows executable (.exe) file that must be run in an app container. This option is equivalent to [/target:winexe](../../../csharp/language-reference/compiler-options/target-winexe-compiler-option.md) but is designed for [!INCLUDE[win8_appname_long](../../../csharp/includes/win8_appname_long_md.md)] apps.
+
+## Syntax
+
+```
+/target:appcontainerexe
+```
+
+## Remarks
+ To require the app to run in an app container, this option sets a bit in the [Portable Executable](http://go.microsoft.com/fwlink/p/?LinkId=236960) (PE) file. When that bit is set, an error occurs if the CreateProcess method tries to launch the executable file outside an app container.
+
+ Unless you use the [/out](../../../csharp/language-reference/compiler-options/out-compiler-option.md) option, the output file name takes the name of the input file that contains the [Main](../../../csharp/programming-guide/main-and-command-args/main-and-command-line-arguments.md) method.
+
+ When you specify this option at a command prompt, all files until the next **/out** or **/target** option are used to create the executable file.
+
+### To set this compiler option in the IDE
+
+1. In **Solution Explorer**, open the shortcut menu for your project, and then choose **Properties**.
+
+2. On the **Application** tab, in the **Output type** list, choose **Windows Store App**.
+
+ This option is available only for [!INCLUDE[win8_appname_long](../../../csharp/includes/win8_appname_long_md.md)] app templates.
+
+ For information about how to set this compiler option programmatically, see .
+
+## Example
+ The following command compiles `filename.cs` into a Windows executable file that can be run only in an app container.
+
+```
+csc /target:appcontainerexe filename.cs
+```
+
+## See Also
+ [/target (C# Compiler Options)](../../../csharp/language-reference/compiler-options/target-compiler-option.md)
+ [/target:winexe (C# Compiler Options)](../../../csharp/language-reference/compiler-options/target-winexe-compiler-option.md)
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/target-compiler-option.md b/docs/csharp/language-reference/compiler-options/target-compiler-option.md
new file mode 100644
index 0000000000000..bb574fe677145
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/target-compiler-option.md
@@ -0,0 +1,90 @@
+---
+title: "-target (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/target"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "target compiler options [C#]"
+ - "/target compiler options [C#]"
+ - "assemblies [C#], compiling"
+ - "-target compiler options [C#]"
+ms.assetid: a18bbd8e-bbf7-49e7-992c-717d0eb1f76f
+caps.latest.revision: 22
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /target (C# Compiler Options)
+The **/target** compiler option can be specified in one of four forms:
+
+ [/target:appcontainerexe](../../../csharp/language-reference/compiler-options/target-appcontainerexe-compiler-option.md)
+ To create an .exe file for [!INCLUDE[win8_appname_long](../../../csharp/includes/win8_appname_long_md.md)] apps.
+
+ [/target:exe](../../../csharp/language-reference/compiler-options/target-exe-compiler-option.md)
+ To create an .exe file.
+
+ [/target:library](../../../csharp/language-reference/compiler-options/target-library-compiler-option.md)
+ To create a code library.
+
+ [/target:module](../../../csharp/language-reference/compiler-options/target-module-compiler-option.md)
+ To create a module.
+
+ [/target:winexe](../../../csharp/language-reference/compiler-options/target-winexe-compiler-option.md)
+ To create a Windows program.
+
+ [/target:winmdobj](../../../csharp/language-reference/compiler-options/target-winmdobj-compiler-option.md)
+ To create an intermediate .winmdobj file.
+
+ Unless you specify **/target:module**, **/target** causes a .NET Framework assembly manifest to be placed in an output file. For more information, see [Assemblies in the Common Language Runtime](https://msdn.microsoft.com/library/k3677y81) and [Common Attributes](http://msdn.microsoft.com/library/2f48a7ec-9683-4899-a1d2-a08be8fc558b).
+
+ The assembly manifest is placed in the first .exe output file in the compilation or in the first DLL, if there is no .exe output file. For example, in the following command line, the manifest will be placed in `1.exe`:
+
+```
+csc /out:1.exe t1.cs /out:2.netmodule t2.cs
+```
+
+ The compiler creates only one assembly manifest per compilation. Information about all files in a compilation is placed in the assembly manifest. All output files except those created with **/target:module** can contain an assembly manifest. When producing multiple output files at the command line, only one assembly manifest can be created and it must go into the first output file specified on the command line. No matter what the first output file is (**/target:exe**, **/target:winexe**, **/target:library** or **/target:module**), any other output files produced in the same compilation must be modules (**/target:module**).
+
+ If you create an assembly, you can indicate that all or part of your code is CLS compliant with the attribute.
+
+```
+// target_clscompliant.cs
+[assembly:System.CLSCompliant(true)] // specify assembly compliance
+
+[System.CLSCompliant(false)] // specify compliance for an element
+public class TestClass
+{
+ public static void Main() {}
+}
+```
+
+ For more information about setting this compiler option programmatically, see .
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
+ [/subsystemversion (C# Compiler Options)](../../../csharp/language-reference/compiler-options/subsystemversion-compiler-option.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/target-exe-compiler-option.md b/docs/csharp/language-reference/compiler-options/target-exe-compiler-option.md
new file mode 100644
index 0000000000000..6b9e235551d0c
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/target-exe-compiler-option.md
@@ -0,0 +1,80 @@
+---
+title: "-target:exe (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/exe"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "target compiler options [C#], /target:exe"
+ - "/target compiler options [C#], /target:exe"
+ - "-target compiler options [C#], /target:exe"
+ms.assetid: bda5717d-1b91-4848-956b-fcf85c30e432
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /target:exe (C# Compiler Options)
+The **/target:exe** option causes the compiler to create an executable (EXE), console application.
+
+## Syntax
+
+```
+/target:exe
+```
+
+## Remarks
+ The **/target:exe** option is in effect by default. The executable file will be created with the .exe extension.
+
+ Use [/target:winexe](../../../csharp/language-reference/compiler-options/target-winexe-compiler-option.md) to create a Windows program executable.
+
+ Unless otherwise specified with the [/out](../../../csharp/language-reference/compiler-options/out-compiler-option.md) option, the output file name takes the name of the input file that contains the [Main](../../../csharp/programming-guide/main-and-command-args/main-and-command-line-arguments.md) method.
+
+ When specified at the command line, all files up to the next **/out** or **/target:module** option are used to create the .exe file
+
+ One and only one **Main** method is required in the source code files that are compiled into an .exe file. The [/main](../../../csharp/language-reference/compiler-options/main-compiler-option.md) compiler option lets you specify which class contains the **Main** method, in cases where your code has more than one class with a **Main** method.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Application** property page.
+
+3. Modify the **Output type** property.
+
+ For information on how to set this compiler option programmatically, see .
+
+## Example
+ Each of the following command lines will compile `in.cs`, creating `in.exe`:
+
+```
+csc /target:exe in.cs
+csc in.cs
+```
+
+## See Also
+ [/target (C# Compiler Options)](../../../csharp/language-reference/compiler-options/target-compiler-option.md)
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/target-library-compiler-option.md b/docs/csharp/language-reference/compiler-options/target-library-compiler-option.md
new file mode 100644
index 0000000000000..0d616f4bdc381
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/target-library-compiler-option.md
@@ -0,0 +1,77 @@
+---
+title: "-target:library (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/dll"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "-target compiler options [C#], /target:library"
+ - "target compiler options [C#], /target:library"
+ - "/target compiler options [C#], /target:library"
+ms.assetid: c5670e88-2126-47c1-8d1c-217923837d17
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /target:library (C# Compiler Options)
+The **/target:library** option causes the compiler to create a dynamic-link library (DLL) rather than an executable file (EXE).
+
+## Syntax
+
+```
+/target:library
+```
+
+## Remarks
+ The DLL will be created with the .dll extension.
+
+ Unless otherwise specified with the [/out](../../../csharp/language-reference/compiler-options/out-compiler-option.md) option, the output file name takes the name of the first input file.
+
+ When specified at the command line, all files up to the next **/out** or **/target:module** option are used to create the .dll file.
+
+ When building a .dll file, a [Main](../../../csharp/programming-guide/main-and-command-args/main-and-command-line-arguments.md) method is not required.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Application** property page.
+
+3. Modify the **Output type** property.
+
+ For information on how to set this compiler option programmatically, see .
+
+## Example
+ Compile `in.cs`, creating `in.dll`:
+
+```
+csc /target:library in.cs
+```
+
+## See Also
+ [/target (C# Compiler Options)](../../../csharp/language-reference/compiler-options/target-compiler-option.md)
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/target-module-compiler-option.md b/docs/csharp/language-reference/compiler-options/target-module-compiler-option.md
new file mode 100644
index 0000000000000..83205502ab28d
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/target-module-compiler-option.md
@@ -0,0 +1,69 @@
+---
+title: "-target:module (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/target:module"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "-target compiler options [C#], /target:module"
+ - "target compiler options [C#], /target:module"
+ - "/target compiler options [C#], /target:module"
+ms.assetid: 9af1e4fa-c749-44e7-ae58-90a3d05d4e72
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /target:module (C# Compiler Options)
+This option causes the compiler to not generate an assembly manifest.
+
+## Syntax
+
+```
+/target:module
+```
+
+## Remarks
+ By default, the output file created by compiling with this option will have an extension of .netmodule.
+
+ A file that does not have an assembly manifest cannot be loaded by the .NET Framework common language runtime. However, such a file can be incorporated into the assembly manifest of an assembly by means of [/addmodule](../../../csharp/language-reference/compiler-options/addmodule-compiler-option.md).
+
+ If more than one module is created in a single compilation, [internal](../../../csharp/language-reference/keywords/internal.md) types in one module will be available to other modules in the compilation. When code in one module references `internal` types in another module, then both modules must be incorporated into an assembly manifest, by means of **/addmodule**.
+
+ Creating a module is not supported in the Visual Studio development environment.
+
+ For information on how to set this compiler option programmatically, see .
+
+## Example
+ Compile `in.cs`, creating `in.netmodule`:
+
+```
+csc /target:module in.cs
+```
+
+## See Also
+ [/target (C# Compiler Options)](../../../csharp/language-reference/compiler-options/target-compiler-option.md)
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/target-winexe-compiler-option.md b/docs/csharp/language-reference/compiler-options/target-winexe-compiler-option.md
new file mode 100644
index 0000000000000..6b6520a08b651
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/target-winexe-compiler-option.md
@@ -0,0 +1,79 @@
+---
+title: "-target:winexe (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/target:winexe"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/target compiler options [C#], /target:winexe"
+ - "-target compiler options [C#], /target:winexe"
+ - "target compiler options [C#], /target:winexe"
+ms.assetid: b5a0619c-8caa-46a5-a743-1cf68408ad7a
+caps.latest.revision: 11
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /target:winexe (C# Compiler Options)
+The **/target:winexe** option causes the compiler to create an executable (EXE), Windows program.
+
+## Syntax
+
+```
+/target:winexe
+```
+
+## Remarks
+ The executable file will be created with the .exe extension. A Windows program is one that provides a user interface from either the .NET Framework library or with the Win32 APIs.
+
+ Use [/target:exe](../../../csharp/language-reference/compiler-options/target-exe-compiler-option.md) to create a console application.
+
+ Unless otherwise specified with the [/out](../../../csharp/language-reference/compiler-options/out-compiler-option.md) option, the output file name takes the name of the input file that contains the [Main](../../../csharp/programming-guide/main-and-command-args/main-and-command-line-arguments.md) method.
+
+ When specified at the command line, all files until the next **/out** or [/target](../../../csharp/language-reference/compiler-options/target-compiler-option.md) option are used to create the Windows program.
+
+ One and only one **Main** method is required in the source code files that are compiled into an .exe file. The [/main](../../../csharp/language-reference/compiler-options/main-compiler-option.md) option lets you specify which class contains the **Main** method, in cases where your code has more than one class with a **Main** method.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Application** property page.
+
+3. Modify the **Output type** property.
+
+ For information on how to set this compiler option programmatically, see .
+
+## Example
+ Compile `in.cs` into a Windows program:
+
+```
+csc /target:winexe in.cs
+```
+
+## See Also
+ [/target (C# Compiler Options)](../../../csharp/language-reference/compiler-options/target-compiler-option.md)
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/target-winmdobj-compiler-option.md b/docs/csharp/language-reference/compiler-options/target-winmdobj-compiler-option.md
new file mode 100644
index 0000000000000..a966448b76b2c
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/target-winmdobj-compiler-option.md
@@ -0,0 +1,74 @@
+---
+title: "-target:winmdobj (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+ms.assetid: 1819a045-659d-498a-9457-c466e902986f
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# /target:winmdobj (C# Compiler Options)
+If you use the **/target:winmdobj** compiler option, the compiler creates an intermediate .winmdobj file that you can convert to a Windows Runtime binary (.winmd) file. The .winmd file can then be consumed by JavaScript and C++ programs, in addition to managed language programs.
+
+## Syntax
+
+```
+/target:winmdobj
+```
+
+## Remarks
+ The **winmdobj** setting signals to the compiler that an intermediate module is required. In response, Visual Studio compiles the C# class library as a .winmdobj file. The .winmdobj file can then be fed through the export tool to produce a Windows metadata (.winmd) file. The .winmd file contains both the code from the original library and the WinMD metadata that is used by JavaScript or C++ and by the Windows Runtime.
+
+ The output of a file that’s compiled by using the **/target:winmdobj** compiler option is designed to be used only as input for the WimMDExp export tool; the .winmdobj file itself isn’t referenced directly.
+
+ Unless you use the [/out](../../../csharp/language-reference/compiler-options/out-compiler-option.md) option, the output file name takes the name of the first input file. A [Main](../../../csharp/programming-guide/main-and-command-args/main-and-command-line-arguments.md) method isn’t required.
+
+ If you specify the /target:winmdobj option at a command prompt, all files until the next **/out** or [/target:module](../../../csharp/language-reference/compiler-options/target-module-compiler-option.md) option are used to create the Windows program.
+
+### To set this compiler option in the Visual Studio IDE for a Windows Store app
+
+1. In **Solution Explorer**, open the shortcut menu for your project, and then choose **Properties**.
+
+2. Choose the **Application** tab.
+
+3. In the **Output type** list, choose **WinMD File**.
+
+ The **WinMD File** option is available only for [!INCLUDE[win8_appname_long](../../../csharp/includes/win8_appname_long_md.md)] app templates.
+
+ For information about how to set this compiler option programmatically, see .
+
+## Example
+ The following command compiles `filename.cs` into an intermediate .winmdobj file.
+
+```
+csc /target:winmdobj filename.cs
+```
+
+## See Also
+ [/target (C# Compiler Options)](../../../csharp/language-reference/compiler-options/target-compiler-option.md)
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/unsafe-compiler-option.md b/docs/csharp/language-reference/compiler-options/unsafe-compiler-option.md
new file mode 100644
index 0000000000000..22bc5b05bdecf
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/unsafe-compiler-option.md
@@ -0,0 +1,71 @@
+---
+title: "-unsafe (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/unsafe"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "-unsafe compiler option [C#]"
+ - "unsafe compiler option [C#]"
+ - "/unsafe compiler option [C#]"
+ms.assetid: fdb77ed9-da03-45bd-bb7f-250704da1bcc
+caps.latest.revision: 19
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /unsafe (C# Compiler Options)
+The **/unsafe** compiler option allows code that uses the [unsafe](../../../csharp/language-reference/keywords/unsafe.md) keyword to compile.
+
+## Syntax
+
+```
+/unsafe
+```
+
+## Remarks
+ For more information about unsafe code, see [Unsafe Code and Pointers](../../../csharp/programming-guide/unsafe-code-pointers/index.md).
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Build** property page.
+
+3. Select the **Allow Unsafe Code** check box.
+
+ For information about how to set this compiler option programmatically, see .
+
+## Example
+ Compile `in.cs` for unsafe mode:
+
+```
+csc /unsafe in.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/utf8output-compiler-option.md b/docs/csharp/language-reference/compiler-options/utf8output-compiler-option.md
new file mode 100644
index 0000000000000..67f65ffeeca56
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/utf8output-compiler-option.md
@@ -0,0 +1,55 @@
+---
+title: "-utf8output (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/utf8output"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "utf8output compiler option [C#]"
+ - "/utf8output compiler option [C#]"
+ - "-utf8output compiler option [C#]"
+ms.assetid: 27ff7381-c281-45d7-b2eb-1ad644b1354e
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /utf8output (C# Compiler Options)
+The **/utf8output** option displays compiler output using UTF-8 encoding.
+
+## Syntax
+
+```
+/utf8output
+```
+
+## Remarks
+ In some international configurations, compiler output cannot correctly be displayed in the console. In these configurations, use **/utf8output** and redirect compiler output to a file.
+
+ This compiler option is unavailable in Visual Studio and cannot be changed programmatically.
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/warn-compiler-option.md b/docs/csharp/language-reference/compiler-options/warn-compiler-option.md
new file mode 100644
index 0000000000000..d6bdb3d721161
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/warn-compiler-option.md
@@ -0,0 +1,91 @@
+---
+title: "-warn (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/warn"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "warning level [C#]"
+ - "/w compiler option [C#]"
+ - "-w compiler option [C#]"
+ - "-warn compiler option [C#]"
+ - "/warn compiler option [C#]"
+ - "w compiler option [C#]"
+ - "warn compiler option [C#]"
+ms.assetid: 5f80ff59-4991-4382-9f9a-77da18446e71
+caps.latest.revision: 17
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /warn (C# Compiler Options)
+The **/warn** option specifies the warning level for the compiler to display.
+
+## Syntax
+
+```
+/warn:option
+```
+
+## Arguments
+ `option`
+ The warning level you want displayed for the compilation: Lower numbers show only high severity warnings; higher numbers show more warnings. Valid values are 0-4:
+
+|Warning level|Meaning|
+|-------------------|-------------|
+|0|Turns off emission of all warning messages.|
+|1|Displays severe warning messages.|
+|2|Displays level 1 warnings plus certain, less-severe warnings, such as warnings about hiding class members.|
+|3|Displays level 2 warnings plus certain, less-severe warnings, such as warnings about expressions that always evaluate to `true` or `false`.|
+|4 (the default)|Displays all level 3 warnings plus informational warnings.|
+
+## Remarks
+ To get information about an error or warning, you can look up the error code in the Help Index. For other ways to get information about an error or warning, see [C# Compiler Errors](../../../csharp/language-reference/compiler-messages/index.md).
+
+ Use [/warnaserror](../../../csharp/language-reference/compiler-options/warnaserror-compiler-option.md) to treat all warnings as errors. Use [/nowarn](../../../csharp/language-reference/compiler-options/nowarn-compiler-option.md) to disable certain warnings.
+
+ **/w** is the short form of **/warn**.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Build** property page.
+
+3. Modify the **Warning Level** property.
+
+ For information on how to set this compiler option programmatically, see .
+
+## Example
+ Compile `in.cs` and have the compiler only display level 1 warnings:
+
+```
+csc /warn:1 in.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/warnaserror-compiler-option.md b/docs/csharp/language-reference/compiler-options/warnaserror-compiler-option.md
new file mode 100644
index 0000000000000..4ad7e44b4169b
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/warnaserror-compiler-option.md
@@ -0,0 +1,78 @@
+---
+title: "-warnaserror (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/warnaserror"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/warnaserror compiler option [C#]"
+ - "-warnaserror compiler option [C#]"
+ - "warnaserror compiler option [C#]"
+ms.assetid: 04680ec3-08d6-4e2e-a274-38310e10e33c
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /warnaserror (C# Compiler Options)
+The **/warnaserror+** option treats all warnings as errors
+
+## Syntax
+
+```
+/warnaserror[+ | -][:warning-list]
+```
+
+## Remarks
+ Any messages that would ordinarily be reported as warnings are instead reported as errors, and the build process is halted (no output files are built).
+
+ By default, **/warnaserror-** is in effect, which causes warnings to not prevent the generation of an output file. **/warnaserror**, which is the same as **/warnaserror+**, causes warnings to be treated as errors.
+
+ Optionally, if you want only a few specific warnings to be treated as errors, you may specify a comma-separated list of warning numbers to treat as errors.
+
+ Use [/warn](../../../csharp/language-reference/compiler-options/warn-compiler-option.md) to specify the level of warnings that you want the compiler to display. Use [/nowarn](../../../csharp/language-reference/compiler-options/nowarn-compiler-option.md) to disable certain warnings.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Build** property page.
+
+3. Modify the **Treat Warnings As Errors** property.
+
+ To set this compiler option programmatically, see .
+
+## Example
+ Compile `in.cs` and have the compiler display no warnings:
+
+```
+csc /warnaserror in.cs
+csc /warnaserror:642,649,652 in.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/win32icon-compiler-option.md b/docs/csharp/language-reference/compiler-options/win32icon-compiler-option.md
new file mode 100644
index 0000000000000..df5a9bcd6f4b8
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/win32icon-compiler-option.md
@@ -0,0 +1,77 @@
+---
+title: "-win32icon (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/win32icon"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "win32icon compiler option [C#]"
+ - "/win32icon compiler option [C#]"
+ - "-win32icon compiler option [C#]"
+ms.assetid: 756d9b6d-ab07-41b7-ba58-5bd88f711138
+caps.latest.revision: 18
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /win32icon (C# Compiler Options)
+The **/win32icon** option inserts an .ico file in the output file, which gives the output file the desired appearance in the File Explorer.
+
+## Syntax
+
+```
+/win32icon:filename
+```
+
+## Arguments
+ `filename`
+ The .ico file that you want to add to your output file.
+
+## Remarks
+ An .ico file can be created with the [Resource Compiler](http://go.microsoft.com/fwlink/?LinkId=148370). The Resource Compiler is invoked when you compile a Visual C++ program; an .ico file is created from the .rc file.
+
+ See [/linkresource](../../../csharp/language-reference/compiler-options/linkresource-compiler-option.md) (to reference) or [/resource](../../../csharp/language-reference/compiler-options/resource-compiler-option.md) (to attach) a .NET Framework resource file. See [/win32res](../../../csharp/language-reference/compiler-options/win32res-compiler-option.md) to import a .res file.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** pages.
+
+2. Click the **Application** property page.
+
+3. Modify the **Application icon** property.
+
+ For information on how to set this compiler option programmatically, see .
+
+## Example
+ Compile `in.cs` and attach an .ico file `rf.ico` to produce `in.exe`:
+
+```
+csc /win32icon:rf.ico in.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/win32manifest-compiler-option.md b/docs/csharp/language-reference/compiler-options/win32manifest-compiler-option.md
new file mode 100644
index 0000000000000..e01d639c0355c
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/win32manifest-compiler-option.md
@@ -0,0 +1,94 @@
+---
+title: "-win32manifest (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/win32manifest"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "/win32manifest compiler option [C#]"
+ - "win32manifest compiler option [C#]"
+ - "-win32manifest compiler option [C#]"
+ms.assetid: 9460ea1b-6c9f-44b8-8f73-301b30a01de1
+caps.latest.revision: 13
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /win32manifest (C# Compiler Options)
+Use the **/win32manifest** option to specify a user-defined Win32 application manifest file to be embedded into a project's portable executable (PE) file.
+
+## Syntax
+
+```
+/win32manifest: filename
+```
+
+## Arguments
+ `filename`
+ The name and location of the custom manifest file.
+
+## Remarks
+ By default, the [!INCLUDE[csharp_current_short](../../../csharp/language-reference/compiler-options/includes/csharp_current_short_md.md)] compiler embeds an application manifest that specifies a requested execution level of "asInvoker." It creates the manifest in the same folder in which the executable is built, typically the bin\Debug or bin\Release folder when you use Visual Studio. If you want to supply a custom manifest, for example to specify a requested execution level of "highestAvailable" or "requireAdministrator," use this option to specify the name of the file.
+
+> [!NOTE]
+> This option and the [/win32res (C# Compiler Options)](../../../csharp/language-reference/compiler-options/win32res-compiler-option.md) option are mutually exclusive. If you try to use both options in the same command line you will get a build error.
+
+ An application that has no application manifest that specifies a requested execution level will be subject to file/registry virtualization under the User Account Control feature in Windows Vista. For more information about virtualization, see [The Windows Vista Developer Story: Windows Vista Application Development Requirements for User Account Control (UAC)](http://go.microsoft.com/fwlink/?LinkId=95452).
+
+ Your application will be subject to virtualization if either of these conditions is true:
+
+- You use the **/nowin32manifest** option and you do not provide a manifest in a later build step or as part of a Windows Resource (.res) file by using the **/win32res** option.
+
+- You provide a custom manifest that does not specify a requested execution level.
+
+ [!INCLUDE[vsprvs](../../../csharp/includes/vsprvs_md.md)] creates a default .manifest file and stores it in the debug and release directories alongside the executable file. You can add a custom manifest by creating one in any text editor and then adding the file to the project. Alternatively, you can right-click the **Project** icon in **Solution Explorer**, click **Add New Item**, and then click **Application Manifest File**. After you have added your new or existing manifest file, it will appear in the **Manifest** drop down list. For more information, see [Application Page, Project Designer (C#)](/visualstudio/ide/reference/application-page-project-designer-csharp).
+
+ You can provide the application manifest as a custom post-build step or as part of a Win32 resource file by using the [/nowin32manifest (C# Compiler Options)](../../../csharp/language-reference/compiler-options/nowin32manifest-compiler-option.md) option. Use that same option if you want your application to be subject to file or registry virtualization on Windows Vista. This will prevent the compiler from creating and embedding a default manifest in the portable executable (PE) file.
+
+## Example
+ The following example shows the default manifest that the Visual C# compiler inserts into a PE.
+
+> [!NOTE]
+> The compiler inserts a standard application name " MyApplication.app " into the xml. This is a workaround to enable applications to run on Windows Server 2003 Service Pack 3.
+
+```
+
+
+
+
+
+
+
+
+
+
+
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [/nowin32manifest (C# Compiler Options)](../../../csharp/language-reference/compiler-options/nowin32manifest-compiler-option.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/compiler-options/win32res-compiler-option.md b/docs/csharp/language-reference/compiler-options/win32res-compiler-option.md
new file mode 100644
index 0000000000000..0ee6abe114a16
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-options/win32res-compiler-option.md
@@ -0,0 +1,78 @@
+---
+title: "-win32res (C# Compiler Options) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "/win32res"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "win32res compiler option"
+ - "/win32res compiler option [C#]"
+ - "-win32res compiler option [C#]"
+ - "win32res compiler option [C#]"
+ms.assetid: 3c33f750-6948-4c7e-a27e-bef98f77255b
+caps.latest.revision: 16
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# /win32res (C# Compiler Options)
+The **/win32res** option inserts a Win32 resource in the output file.
+
+## Syntax
+
+```
+/win32res:filename
+```
+
+## Arguments
+ `filename`
+ The resource file that you want to add to your output file.
+
+## Remarks
+ A Win32 resource file can be created with the [Resource Compiler](http://go.microsoft.com/fwlink/?LinkId=148370). The Resource Compiler is invoked when you compile a Visual C++ program; a .res file is created from the .rc file.
+
+ A Win32 resource can contain version or bitmap (icon) information that would help identify your application in the File Explorer. If you do not specify **/win32res**, the compiler will generate version information based on the assembly version.
+
+ See [/linkresource](../../../csharp/language-reference/compiler-options/linkresource-compiler-option.md) (to reference) or [/resource](../../../csharp/language-reference/compiler-options/resource-compiler-option.md) (to attach) a .NET Framework resource file.
+
+### To set this compiler option in the Visual Studio development environment
+
+1. Open the project's **Properties** page.
+
+2. Click the **Application** property page.
+
+3. Click on the **Resource File** button and choose a file by using the combo box.
+
+## Example
+ Compile `in.cs` and attach a Win32 resource file `rf.res` to produce `in.exe`:
+
+```
+csc /win32res:rf.res in.cs
+```
+
+## See Also
+ [C# Compiler Options](../../../csharp/language-reference/compiler-options/index.md)
+ [NIB How to: Modify Project Properties and Configuration Settings](http://msdn.microsoft.com/en-us/e7184bc5-2f2b-4b4f-aa9a-3ecfcbc48b67)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/index.md b/docs/csharp/language-reference/index.md
new file mode 100644
index 0000000000000..cef7640361490
--- /dev/null
+++ b/docs/csharp/language-reference/index.md
@@ -0,0 +1,77 @@
+---
+title: "C# Reference | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "Visual C#, language reference"
+ - "language reference [C#]"
+ - "Programmer's Reference for C#"
+ - "C# language, reference"
+ - "reference, C# language"
+ms.assetid: 06de3167-c16c-4e1a-b3c5-c27841d4569a
+caps.latest.revision: 43
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# C# Reference
+This section provides reference material about C# keywords, operators, compiler errors, and warnings.
+
+## In This Section
+ [C# Keywords](../../csharp/language-reference/keywords/index.md)
+ Provides links to information about C# keywords and syntax.
+
+ [C# Operators](../../csharp/language-reference/operators/index.md)
+ Provides links to information about C# operators and syntax.
+
+ [C# Preprocessor Directives](../../csharp/language-reference/preprocessor-directives/index.md)
+ Provides links to information about compiler commands for embedding in C# source code.
+
+ [C# Compiler Options](../../csharp/language-reference/compiler-options/index.md)
+ Includes information about compiler options and how to use them.
+
+ [C# Compiler Errors](../../csharp/language-reference/compiler-messages/index.md)
+ Includes code snippets that demonstrate the cause and correction of C# compiler errors and warnings.
+
+ [C# Language Specification](../../csharp/language-reference/language-specification.md)
+ Provides pointers to the latest version of the C# Language Specification in Microsoft Word format.
+
+## Related Sections
+ [C# FAQ](http://go.microsoft.com/fwlink/?LinkId=70367)
+ Provides a growing list of C# Frequently Asked Questions in the C# Developer Center.
+
+ [C# KB articles in the Microsoft Knowledge Base](http://go.microsoft.com/fwlink/?LinkId=70368)
+ Opens a Microsoft search page for Knowledge Base articles that are available on MSDN.
+
+ [C#](../../csharp/csharp.md)
+ Provides a portal to Visual C# documentation.
+
+ [Using the Visual Studio Development Environment for C#](/visualstudio/csharp-ide/using-the-visual-studio-development-environment-for-csharp)
+ Provides links to conceptual and task topics that describe the IDE and Editor.
+
+ [C# Programming Guide](../../csharp/programming-guide/index.md)
+ Includes information about how to use the C# programming language.
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/abstract.md b/docs/csharp/language-reference/keywords/abstract.md
new file mode 100644
index 0000000000000..6d95772030750
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/abstract.md
@@ -0,0 +1,111 @@
+---
+title: "abstract (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "abstract"
+ - "abstract_CSharpKeyword"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "abstract keyword [C#]"
+ms.assetid: b0797770-c1f3-4b4d-9441-b9122602a6bb
+caps.latest.revision: 24
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# abstract (C# Reference)
+The `abstract` modifier indicates that the thing being modified has a missing or incomplete implementation. The abstract modifier can be used with classes, methods, properties, indexers, and events. Use the `abstract` modifier in a class declaration to indicate that a class is intended only to be a base class of other classes. Members marked as abstract, or included in an abstract class, must be implemented by classes that derive from the abstract class.
+
+## Example
+ In this example, the class `Square` must provide an implementation of `Area` because it derives from `ShapesClass`:
+
+ [!code-cs[csrefKeywordsModifiers#1](../../../csharp/language-reference/keywords/codesnippet/CSharp/abstract_1.cs)]
+
+ Abstract classes have the following features:
+
+- An abstract class cannot be instantiated.
+
+- An abstract class may contain abstract methods and accessors.
+
+- It is not possible to modify an abstract class with the [sealed](../../../csharp/language-reference/keywords/sealed.md) modifier because the two modifers have opposite meanings. The `sealed` modifier prevents a class from being inherited and the `abstract` modifier requires a class to be inherited.
+
+- A non-abstract class derived from an abstract class must include actual implementations of all inherited abstract methods and accessors.
+
+ Use the `abstract` modifier in a method or property declaration to indicate that the method or property does not contain implementation.
+
+ Abstract methods have the following features:
+
+- An abstract method is implicitly a virtual method.
+
+- Abstract method declarations are only permitted in abstract classes.
+
+- Because an abstract method declaration provides no actual implementation, there is no method body; the method declaration simply ends with a semicolon and there are no curly braces ({ }) following the signature. For example:
+
+ ```
+ public abstract void MyMethod();
+ ```
+
+ The implementation is provided by an overriding method[override](../../../csharp/language-reference/keywords/override.md), which is a member of a non-abstract class.
+
+- It is an error to use the [static](../../../csharp/language-reference/keywords/static.md) or [virtual](../../../csharp/language-reference/keywords/virtual.md) modifiers in an abstract method declaration.
+
+ Abstract properties behave like abstract methods, except for the differences in declaration and invocation syntax.
+
+- It is an error to use the `abstract` modifier on a static property.
+
+- An abstract inherited property can be overridden in a derived class by including a property declaration that uses the [override](../../../csharp/language-reference/keywords/override.md) modifier.
+
+ For more information about abstract classes, see [Abstract and Sealed Classes and Class Members](../../../csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members.md).
+
+ An abstract class must provide implementation for all interface members.
+
+ An abstract class that implements an interface might map the interface methods onto abstract methods. For example:
+
+ [!code-cs[csrefKeywordsModifiers#2](../../../csharp/language-reference/keywords/codesnippet/CSharp/abstract_2.cs)]
+
+## Example
+ In this example, the class `DerivedClass` is derived from an abstract class `BaseClass`. The abstract class contains an abstract method, `AbstractMethod`, and two abstract properties, `X` and `Y`.
+
+ [!code-cs[csrefKeywordsModifiers#3](../../../csharp/language-reference/keywords/codesnippet/CSharp/abstract_3.cs)]
+
+ In the preceding example, if you attempt to instantiate the abstract class by using a statement like this:
+
+```
+BaseClass bc = new BaseClass(); // Error
+```
+
+ you will get an error saying that the compiler cannot create an instance of the abstract class 'BaseClass'.
+
+## C# Language Specification
+ [!INCLUDE[CSharplangspec](../../../csharp/language-reference/keywords/includes/csharplangspec_md.md)]
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [Modifiers](../../../csharp/language-reference/keywords/modifiers.md)
+ [virtual](../../../csharp/language-reference/keywords/virtual.md)
+ [override](../../../csharp/language-reference/keywords/override.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/access-keywords.md b/docs/csharp/language-reference/keywords/access-keywords.md
new file mode 100644
index 0000000000000..11c9506f224ca
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/access-keywords.md
@@ -0,0 +1,51 @@
+---
+title: "Access Keywords (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "access keywords [C#]"
+ms.assetid: 3b680d9c-0998-42df-8ba7-5783f7abda75
+caps.latest.revision: 10
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Access Keywords (C# Reference)
+This section introduces the following access keywords:
+
+- [base](../../../csharp/language-reference/keywords/base.md)
+
+ Accesses the members of the base class.
+
+- [this](../../../csharp/language-reference/keywords/this.md)
+
+ Refers to the current instance of the class.
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [Access Modifiers](../../../csharp/language-reference/keywords/access-modifiers.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/access-modifiers.md b/docs/csharp/language-reference/keywords/access-modifiers.md
new file mode 100644
index 0000000000000..72ff3681deefd
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/access-modifiers.md
@@ -0,0 +1,73 @@
+---
+title: "Access Modifiers (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "access modifiers [C#]"
+ms.assetid: 61c3fa51-c00f-48cb-9b49-c805dedd62d7
+caps.latest.revision: 15
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Access Modifiers (C# Reference)
+Access modifiers are keywords used to specify the declared accessibility of a member or a type. This section introduces the four access modifiers:
+
+- [public](../../../csharp/language-reference/keywords/public.md)
+
+- [protected](../../../csharp/language-reference/keywords/protected.md)
+
+- [internal](../../../csharp/language-reference/keywords/internal.md)
+
+- [private](../../../csharp/language-reference/keywords/private.md)
+
+ The following five accessibility levels can be specified using the access modifiers:
+
+ `public`: Access is not restricted.
+
+ `protected`: Access is limited to the containing class or types derived from the containing class.
+
+ `Internal`: Access is limited to the current assembly.
+
+ [protected internal](../../../csharp/programming-guide/classes-and-structs/access-modifiers.md): Access is limited to the current assembly or types derived from the containing class.
+
+ `private`: Access is limited to the containing type.
+
+ This section also introduces the following:
+
+- [Accessibility Levels](../../../csharp/language-reference/keywords/accessibility-levels.md): Using the four access modifiers to declare five levels of accessibility.
+
+- [Accessibility Domain](../../../csharp/language-reference/keywords/accessibility-domain.md): Specifies where, in the program sections, a member can be referenced.
+
+- [Restrictions on Using Accessibility Levels](../../../csharp/language-reference/keywords/restrictions-on-using-accessibility-levels.md): A summary of the restrictions on using declared accessibility levels.
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [Access Modifiers](../../../csharp/programming-guide/classes-and-structs/access-modifiers.md)
+ [Access Keywords](../../../csharp/language-reference/keywords/access-keywords.md)
+ [Modifiers](../../../csharp/language-reference/keywords/modifiers.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/accessibility-domain.md b/docs/csharp/language-reference/keywords/accessibility-domain.md
new file mode 100644
index 0000000000000..15dc4d72b33de
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/accessibility-domain.md
@@ -0,0 +1,60 @@
+---
+title: "Accessibility Domain (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "accessibility domain [C#]"
+ms.assetid: 8af779c1-275b-44be-a864-9edfbca71bcc
+caps.latest.revision: 17
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Accessibility Domain (C# Reference)
+The accessibility domain of a member specifies in which program sections a member can be referenced. If the member is nested within another type, its accessibility domain is determined by both the [accessibility level](../../../csharp/language-reference/keywords/accessibility-levels.md) of the member and the accessibility domain of the immediately containing type.
+
+ The accessibility domain of a top-level type is at least the program text of the project that it is declared in. That is, the domain includes all of the source files of this project. The accessibility domain of a nested type is at least the program text of the type in which it is declared. That is, the domain is the type body, which includes all nested types. The accessibility domain of a nested type never exceeds that of the containing type. These concepts are demonstrated in the following example.
+
+## Example
+ This example contains a top-level type, `T1`, and two nested classes, `M1` and `M2`. The classes contain fields that have different declared accessibilities. In the `Main` method, a comment follows each statement to indicate the accessibility domain of each member. Notice that the statements that try to reference the inaccessible members are commented out. If you want to see the compiler errors caused by referencing an inaccessible member, remove the comments one at a time.
+
+ [!code-cs[csrefKeywordsModifiers#4](../../../csharp/language-reference/keywords/codesnippet/CSharp/accessibility-domain_1.cs)]
+
+## C# Language Specification
+ [!INCLUDE[CSharplangspec](../../../csharp/language-reference/keywords/includes/csharplangspec_md.md)]
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [Access Modifiers](../../../csharp/language-reference/keywords/access-modifiers.md)
+ [Accessibility Levels](../../../csharp/language-reference/keywords/accessibility-levels.md)
+ [Restrictions on Using Accessibility Levels](../../../csharp/language-reference/keywords/restrictions-on-using-accessibility-levels.md)
+ [Access Modifiers](../../../csharp/programming-guide/classes-and-structs/access-modifiers.md)
+ [public](../../../csharp/language-reference/keywords/public.md)
+ [private](../../../csharp/language-reference/keywords/private.md)
+ [protected](../../../csharp/language-reference/keywords/protected.md)
+ [internal](../../../csharp/language-reference/keywords/internal.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/accessibility-levels.md b/docs/csharp/language-reference/keywords/accessibility-levels.md
new file mode 100644
index 0000000000000..f52f242772c6a
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/accessibility-levels.md
@@ -0,0 +1,81 @@
+---
+title: "Accessibility Levels (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "access modifiers [C#], accessibility levels"
+ - "accessibility levels"
+ms.assetid: dc083921-0073-413e-8936-a613e8bb7df4
+caps.latest.revision: 19
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Accessibility Levels (C# Reference)
+Use the access modifiers, [public](../../../csharp/language-reference/keywords/public.md), [protected](../../../csharp/language-reference/keywords/protected.md), [internal](../../../csharp/language-reference/keywords/internal.md), or [private](../../../csharp/language-reference/keywords/private.md), to specify one of the following declared accessibility levels for members.
+
+|Declared accessibility|Meaning|
+|----------------------------|-------------|
+|`public`|Access is not restricted.|
+|`protected`|Access is limited to the containing class or types derived from the containing class.|
+|`internal`|Access is limited to the current assembly.|
+|`protected` `internal`|Access is limited to the current assembly or types derived from the containing class.|
+|`private`|Access is limited to the containing type.|
+
+ Only one access modifier is allowed for a member or type, except when you use the `protected` `internal` combination.
+
+ Access modifiers are not allowed on namespaces. Namespaces have no access restrictions.
+
+ Depending on the context in which a member declaration occurs, only certain declared accessibilities are permitted. If no access modifier is specified in a member declaration, a default accessibility is used.
+
+ Top-level types, which are not nested in other types, can only have `internal` or `public` accessibility. The default accessibility for these types is `internal`.
+
+ Nested types, which are members of other types, can have declared accessibilities as indicated in the following table.
+
+|Members of|Default member accessibility|Allowed declared accessibility of the member|
+|----------------|----------------------------------|--------------------------------------------------|
+|`enum`|`public`|None|
+|`class`|`private`|`public`
`private`|
+
+ The accessibility of a nested type depends on its [accessibility domain](../../../csharp/language-reference/keywords/accessibility-domain.md), which is determined by both the declared accessibility of the member and the accessibility domain of the immediately containing type. However, the accessibility domain of a nested type cannot exceed that of the containing type.
+
+## C# Language Specification
+ [!INCLUDE[CSharplangspec](../../../csharp/language-reference/keywords/includes/csharplangspec_md.md)]
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [Access Modifiers](../../../csharp/language-reference/keywords/access-modifiers.md)
+ [Accessibility Domain](../../../csharp/language-reference/keywords/accessibility-domain.md)
+ [Restrictions on Using Accessibility Levels](../../../csharp/language-reference/keywords/restrictions-on-using-accessibility-levels.md)
+ [Access Modifiers](../../../csharp/programming-guide/classes-and-structs/access-modifiers.md)
+ [public](../../../csharp/language-reference/keywords/public.md)
+ [private](../../../csharp/language-reference/keywords/private.md)
+ [protected](../../../csharp/language-reference/keywords/protected.md)
+ [internal](../../../csharp/language-reference/keywords/internal.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/add.md b/docs/csharp/language-reference/keywords/add.md
new file mode 100644
index 0000000000000..d18a5c4cc4e4b
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/add.md
@@ -0,0 +1,49 @@
+---
+title: "add (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "add_CSharpKeyword"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "add event accessor [C#]"
+ms.assetid: faf30b99-10e8-45cd-ab9a-57585d4d1d8d
+caps.latest.revision: 7
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# add (C# Reference)
+The `add` contextual keyword is used to define a custom event accessor that is invoked when client code subscribes to your [event](../../../csharp/language-reference/keywords/event.md). If you supply a custom `add` accessor, you must also supply a [remove](../../../csharp/language-reference/keywords/remove.md) accessor.
+
+## Example
+ The following example shows an event that has custom `add` and [remove](../../../csharp/language-reference/keywords/remove.md) accessors. For the full example, see [How to: Implement Interface Events](../../../csharp/programming-guide/events/how-to-implement-interface-events.md).
+
+ [!code-cs[csrefKeywordsContextual#15](../../../csharp/language-reference/keywords/codesnippet/CSharp/add_1.cs)]
+
+ You do not typically need to provide your own custom event accessors. The accessors that are automatically generated by the compiler when you declare an event are sufficient for most scenarios.
+
+## See Also
+ [Events](../../../csharp/programming-guide/events/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/as.md b/docs/csharp/language-reference/keywords/as.md
new file mode 100644
index 0000000000000..8de626b5bfce0
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/as.md
@@ -0,0 +1,72 @@
+---
+title: "as (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "as_CSharpKeyword"
+ - "as"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "type conversion [C#], as keyword"
+ - "as keyword [C#]"
+ms.assetid: a9be126b-cbf4-4990-a70d-d0e1983cad0e
+caps.latest.revision: 24
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# as (C# Reference)
+You can use the `as` operator to perform certain types of conversions between compatible reference types or [nullable types](../../../csharp/programming-guide/nullable-types/index.md). The following code shows an example.
+
+ [!code-cs[csrefKeywordsOperator#1](../../../csharp/language-reference/keywords/codesnippet/CSharp/as_1.cs)]
+
+## Remarks
+ The `as` operator is like a cast operation. However, if the conversion isn't possible, `as` returns `null` instead of raising an exception. Consider the following example:
+
+```
+expression as type
+```
+
+ The code is equivalent to the following expression except that the `expression` variable is evaluated only one time.
+
+```
+expression is type ? (type)expression : (type)null
+```
+
+ Note that the `as` operator performs only reference conversions, nullable conversions, and boxing conversions. The `as` operator can't perform other conversions, such as user-defined conversions, which should instead be performed by using cast expressions.
+
+## Example
+ [!code-cs[csrefKeywordsOperator#2](../../../csharp/language-reference/keywords/codesnippet/CSharp/as_2.cs)]
+
+## C# Language Specification
+ [!INCLUDE[CSharplangspec](../../../csharp/language-reference/keywords/includes/csharplangspec_md.md)]
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [is](../../../csharp/language-reference/keywords/is.md)
+ [?: Operator](../../../csharp/language-reference/operators/conditional-operator.md)
+ [Operator Keywords](../../../csharp/language-reference/keywords/operator-keywords.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/ascending.md b/docs/csharp/language-reference/keywords/ascending.md
new file mode 100644
index 0000000000000..d3f634b634270
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/ascending.md
@@ -0,0 +1,50 @@
+---
+title: "ascending (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "ascending"
+ - "ascending_CSharpKeyword"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "ascending keyword [C#]"
+ms.assetid: 57fbb619-8187-481c-b68e-3a91996fde69
+caps.latest.revision: 6
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# ascending (C# Reference)
+The `ascending` contextual keyword is used in the [orderby clause](../../../csharp/language-reference/keywords/orderby-clause.md) in query expressions to specify that the sort order is from smallest to largest. Because `ascending` is the default sort order, you do not have to specify it.
+
+## Example
+ The following example shows the use of `ascending` in an [orderby clause](../../../csharp/language-reference/keywords/orderby-clause.md).
+
+ [!code-cs[csrefKeywordsContextual#14](../../../csharp/language-reference/keywords/codesnippet/CSharp/ascending_1.cs)]
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [LINQ Query Expressions](../../../csharp/programming-guide/linq-query-expressions/index.md)
+ [descending](../../../csharp/language-reference/keywords/descending.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/async.md b/docs/csharp/language-reference/keywords/async.md
new file mode 100644
index 0000000000000..8b031e4c84908
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/async.md
@@ -0,0 +1,136 @@
+---
+title: "async (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "async_CSharpKeyword"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "async keyword [C#]"
+ - "async method [C#]"
+ - "async [C#]"
+ms.assetid: 16f14f09-b2ce-42c7-a875-e4eca5d50674
+caps.latest.revision: 52
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# async (C# Reference)
+Use the `async` modifier to specify that a method, [lambda expression](../../../csharp/programming-guide/statements-expressions-operators/lambda-expressions.md), or [anonymous method](../../../csharp/programming-guide/statements-expressions-operators/anonymous-methods.md) is asynchronous. If you use this modifier on a method or expression, it's referred to as an async method.
+
+```cs
+public async Task ExampleMethodAsync()
+{
+ // . . . .
+}
+
+```
+
+ If you're new to asynchronous programming or do not understand how an async method uses the `await` keyword to do potentially long-running work without blocking the caller’s thread, you should read the introduction in [Asynchronous Programming with async and await](../../../csharp/programming-guide/concepts/async/asynchronous-programming-with-async-and-await.md).
+
+```
+string contents = await contentsTask;
+```
+
+ The method runs synchronously until it reaches its first `await` expression, at which point the method is suspended until the awaited task is complete. In the meantime, control returns to the caller of the method, as the example in the next section shows.
+
+ If the method that the `async` keyword modifies doesn't contain an `await` expression or statement, the method executes synchronously. A compiler warning alerts you to any async methods that don't contain `await`, because that situation might indicate an error. See [Compiler Warning (level 1) CS4014](../../../csharp/language-reference/compiler-messages/cs4014.md).
+
+ The `async` keyword is contextual in that it's a keyword only when it modifies a method, a lambda expression, or an anonymous method. In all other contexts, it's interpreted as an identifier.
+
+## Example
+ The following example shows the structure and flow of control between an async event handler, `StartButton_Click`, and an async method, `ExampleMethodAsync`. The result from the async method is the length of a downloaded website. The code is suitable for a Windows Presentation Foundation (WPF) app or Windows Store app that you create in [!INCLUDE[vs_dev12](../../../csharp/getting-started/includes/vs_dev12_md.md)]; see the code comments for setting up the app.
+
+```cs
+// You can run this code in Visual Studio 2013 as a WPF app or a Windows Store app.
+// You need a button (StartButton) and a textbox (ResultsTextBox).
+// Remember to set the names and handler so that you have something like this:
+//
+//
+
+// To run the code as a WPF app:
+// paste this code into the MainWindow class in MainWindow.xaml.cs,
+// add a reference to System.Net.Http, and
+// add a using directive for System.Net.Http.
+
+// To run the code as a Windows Store app:
+// paste this code into the MainPage class in MainPage.xaml.cs, and
+// add using directives for System.Net.Http and System.Threading.Tasks.
+
+private async void StartButton_Click(object sender, RoutedEventArgs e)
+{
+ // ExampleMethodAsync returns a Task, which means that the method
+ // eventually produces an int result. However, ExampleMethodAsync returns
+ // the Task value as soon as it reaches an await.
+ ResultsTextBox.Text += "\n";
+ try
+ {
+ int length = await ExampleMethodAsync();
+ // Note that you could put "await ExampleMethodAsync()" in the next line where
+ // "length" is, but due to when '+=' fetches the value of ResultsTextBox, you
+ // would not see the global side effect of ExampleMethodAsync setting the text.
+ ResultsTextBox.Text += String.Format("Length: {0}\n", length);
+ }
+ catch (Exception)
+ {
+ // Process the exception if one occurs.
+ }
+}
+
+public async Task ExampleMethodAsync()
+{
+ var httpClient = new HttpClient();
+ int exampleInt = (await httpClient.GetStringAsync("http://msdn.microsoft.com")).Length;
+ ResultsTextBox.Text += "Preparing to finish ExampleMethodAsync.\n";
+ // After the following return statement, any method that's awaiting
+ // ExampleMethodAsync (in this case, StartButton_Click) can get the
+ // integer result.
+ return exampleInt;
+}
+// Output:
+// Preparing to finish ExampleMethodAsync.
+// Length: 53292
+
+```
+
+> [!IMPORTANT]
+> For more information about tasks and the code that executes while waiting for a task, see [Asynchronous Programming with async and await](../../../csharp/programming-guide/concepts/async/asynchronous-programming-with-async-and-await.md). For a full WPF example that uses similar elements, see [Walkthrough: Accessing the Web by Using Async and Await](../../../csharp/programming-guide/concepts/async/walkthrough-accessing-the-web-by-using-async-and-await.md). You can download the walkthrough code from [Developer Code Samples](http://go.microsoft.com/fwlink/?LinkId=255191).
+
+## Return Types
+ An async method can have a return type of , , or [void](../../../csharp/language-reference/keywords/void.md). The method can't declare any [ref](../../../csharp/language-reference/keywords/ref.md) or [out](../../../csharp/language-reference/keywords/out.md) parameters, but it can call methods that have such parameters.
+
+ You specify `Task` as the return type of an async method if the [return](../../../csharp/language-reference/keywords/return.md) statement of the method specifies an operand of type `TResult`. You use `Task` if no meaningful value is returned when the method is completed. That is, a call to the method returns a `Task`, but when the `Task` is completed, any `await` expression that's awaiting the `Task` evaluates to `void`.
+
+ You use the `void` return type primarily to define event handlers, which require that return type. The caller of a `void`-returning async method can't await it and can't catch exceptions that the method throws.
+
+ For more information and examples, see [Async Return Types](../../../csharp/programming-guide/concepts/async/async-return-types.md).
+
+## See Also
+
+ [await](../../../csharp/language-reference/keywords/await.md)
+ [Walkthrough: Accessing the Web by Using Async and Await](../../../csharp/programming-guide/concepts/async/walkthrough-accessing-the-web-by-using-async-and-await.md)
+ [Asynchronous Programming with async and await](../../../csharp/programming-guide/concepts/async/asynchronous-programming-with-async-and-await.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/await.md b/docs/csharp/language-reference/keywords/await.md
new file mode 100644
index 0000000000000..c8d7e01655f5d
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/await.md
@@ -0,0 +1,113 @@
+---
+title: "await (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "await_CSharpKeyword"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "await keyword [C#]"
+ - "await [C#]"
+ms.assetid: 50725c24-ac76-4ca7-bca1-dd57642ffedb
+caps.latest.revision: 36
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# await (C# Reference)
+The `await` operator is applied to a task in an asynchronous method to suspend the execution of the method until the awaited task completes. The task represents ongoing work.
+
+ The asynchronous method in which `await` is used must be modified by the [async](../../../csharp/language-reference/keywords/async.md) keyword. Such a method, defined by using the `async` modifier, and usually containing one or more `await` expressions, is referred to as an *async method*.
+
+> [!NOTE]
+> The `async` and `await` keywords were introduced in Visual Studio 2012. For an introduction to async programming, see [Asynchronous Programming with async and await](../../../csharp/programming-guide/concepts/async/asynchronous-programming-with-async-and-await.md).
+
+ The task to which the `await` operator is applied typically is the return value from a call to a method that implements the [Task-Based Asynchronous Pattern](http://go.microsoft.com/fwlink/?LinkId=204847). Examples include values of type or .
+
+ In the following code, the method returns a `Task\`, `getContentsTask`. The task is a promise to produce the actual byte array when the task is complete. The `await` operator is applied to `getContentsTask` to suspend execution in `SumPageSizesAsync` until `getContentsTask` is complete. In the meantime, control is returned to the caller of `SumPageSizesAsync`. When `getContentsTask` is finished, the `await` expression evaluates to a byte array.
+
+0
+> [!IMPORTANT]
+> For the complete example, see [Walkthrough: Accessing the Web by Using Async and Await](../../../csharp/programming-guide/concepts/async/walkthrough-accessing-the-web-by-using-async-and-await.md). You can download the sample from [Developer Code Samples](http://go.microsoft.com/fwlink/?LinkID=255191&clcid=0x409) on the Microsoft website. The example is in the AsyncWalkthrough_HttpClient project.
+
+ As shown in the previous example, if `await` is applied to the result of a method call that returns a `Task`, then the type of the `await` expression is TResult. If `await` is applied to the result of a method call that returns a `Task`, then the type of the `await` expression is void. The following example illustrates the difference.
+
+1
+ An `await` expression does not block the thread on which it is executing. Instead, it causes the compiler to sign up the rest of the async method as a continuation on the awaited task. Control then returns to the caller of the async method. When the task completes, it invokes its continuation, and execution of the async method resumes where it left off.
+
+ An `await` expression can occur only in the body of an immediately enclosing method, lambda expression, or anonymous method that is marked by an `async` modifier. The term *await* serves as a keyword only in that context. Elsewhere, it is interpreted as an identifier. Within the method, lambda expression, or anonymous method, an `await` expression cannot occur in the body of a synchronous function, in a query expression,, in the block of a [lock statement](../../../csharp/language-reference/keywords/lock-statement.md), or in an [unsafe](../../../csharp/language-reference/keywords/unsafe.md) context.
+
+## Exceptions
+ Most async methods return a or . The properties of the returned task carry information about its status and history, such as whether the task is complete, whether the async method caused an exception or was canceled, and what the final result is. The `await` operator accesses those properties.
+
+ If you await a task-returning async method that causes an exception, the `await` operator rethrows the exception.
+
+ If you await a task-returning async method that's canceled, the `await` operator rethrows an .
+
+ A single task that is in a faulted state can reflect multiple exceptions. For example, the task might be the result of a call to . When you await such a task, the await operation rethrows only one of the exceptions. However, you can't predict which of the exceptions is rethrown.
+
+ For examples of error handling in async methods, see [try-catch](../../../csharp/language-reference/keywords/try-catch.md).
+
+## Example
+ The following Windows Forms example illustrates the use of `await` in an async method, `WaitAsynchronouslyAsync`. Contrast the behavior of that method with the behavior of `WaitSynchronously`. Without an `await` operator applied to a task, `WaitSynchronously` runs synchronously despite the use of the `async` modifier in its definition and a call to in its body.
+
+```cs
+
+private async void button1_Click(object sender, EventArgs e)
+{
+ // Call the method that runs asynchronously.
+ string result = await WaitAsynchronouslyAsync();
+
+ // Call the method that runs synchronously.
+ //string result = await WaitSynchronously ();
+
+ // Display the result.
+ textBox1.Text += result;
+}
+
+// The following method runs asynchronously. The UI thread is not
+// blocked during the delay. You can move or resize the Form1 window
+// while Task.Delay is running.
+public async Task WaitAsynchronouslyAsync()
+{
+ await Task.Delay(10000);
+ return "Finished";
+}
+
+// The following method runs synchronously, despite the use of async.
+// You cannot move or resize the Form1 window while Thread.Sleep
+// is running because the UI thread is blocked.
+public async Task WaitSynchronously()
+{
+ // Add a using directive for System.Threading.
+ Thread.Sleep(10000);
+ return "Finished";
+}
+```
+
+## See Also
+ [Asynchronous Programming with async and await](../../../csharp/programming-guide/concepts/async/asynchronous-programming-with-async-and-await.md)
+ [Walkthrough: Accessing the Web by Using Async and Await](../../../csharp/programming-guide/concepts/async/walkthrough-accessing-the-web-by-using-async-and-await.md)
+ [async](../../../csharp/language-reference/keywords/async.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/base.md b/docs/csharp/language-reference/keywords/base.md
new file mode 100644
index 0000000000000..3acf31783bf2f
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/base.md
@@ -0,0 +1,72 @@
+---
+title: "base (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "base"
+ - "BaseClass.BaseClass"
+ - "base_CSharpKeyword"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "base keyword [C#]"
+ms.assetid: 8b645dbe-1a33-49b8-8716-1c401f9a5ea5
+caps.latest.revision: 14
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# base (C# Reference)
+The `base` keyword is used to access members of the base class from within a derived class:
+
+- Call a method on the base class that has been overridden by another method.
+
+- Specify which base-class constructor should be called when creating instances of the derived class.
+
+ A base class access is permitted only in a constructor, an instance method, or an instance property accessor.
+
+ It is an error to use the `base` keyword from within a static method.
+
+ The base class that is accessed is the base class specified in the class declaration. For example, if you specify `class ClassB : ClassA`, the members of ClassA are accessed from ClassB, regardless of the base class of ClassA.
+
+## Example
+ In this example, both the base class, `Person`, and the derived class, `Employee`, have a method named `Getinfo`. By using the `base` keyword, it is possible to call the `Getinfo` method on the base class, from within the derived class.
+
+ [!code-cs[csrefKeywordsAccess#1](../../../csharp/language-reference/keywords/codesnippet/CSharp/base_1.cs)]
+
+ For additional examples, see [new](../../../csharp/language-reference/keywords/new.md), [virtual](../../../csharp/language-reference/keywords/virtual.md), and [override](../../../csharp/language-reference/keywords/override.md).
+
+## Example
+ This example shows how to specify the base-class constructor called when creating instances of a derived class.
+
+ [!code-cs[csrefKeywordsAccess#2](../../../csharp/language-reference/keywords/codesnippet/CSharp/base_2.cs)]
+
+## C# Language Specification
+ [!INCLUDE[CSharplangspec](../../../csharp/language-reference/keywords/includes/csharplangspec_md.md)]
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [this](../../../csharp/language-reference/keywords/this.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/bool.md b/docs/csharp/language-reference/keywords/bool.md
new file mode 100644
index 0000000000000..9e680b6aaa3a6
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/bool.md
@@ -0,0 +1,76 @@
+---
+title: "bool (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "bool_CSharpKeyword"
+ - "bool"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "bool keyword [C#]"
+ms.assetid: 551cfe35-2632-4343-af49-33ad12da08e2
+caps.latest.revision: 30
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# bool (C# Reference)
+The `bool` keyword is an alias of . It is used to declare variables to store the Boolean values, [true](../../../csharp/language-reference/keywords/true.md) and [false](../../../csharp/language-reference/keywords/false.md).
+
+> [!NOTE]
+> If you require a Boolean variable that can also have a value of `null`, use `bool?`. For more information, see [Nullable Types](../../../csharp/programming-guide/nullable-types/index.md).
+
+## Literals
+ You can assign a Boolean value to a `bool` variable. You can also assign an expression that evaluates to `bool` to a `bool` variable.
+
+ [!code-cs[csrefKeywordsTypes#1](../../../csharp/language-reference/keywords/codesnippet/CSharp/bool_1.cs)]
+
+ The default value of a `bool` variable is `false`. The default value of a `bool?` variable is `null`.
+
+## Conversions
+ In C++, a value of type `bool` can be converted to a value of type `int`; in other words, `false` is equivalent to zero and `true` is equivalent to nonzero values. In C#, there is no conversion between the `bool` type and other types. For example, the following `if` statement is invalid in C#:
+
+ [!code-cs[csrefKeywordsTypes#2](../../../csharp/language-reference/keywords/codesnippet/CSharp/bool_2.cs)]
+
+ To test a variable of the type `int`, you have to explicitly compare it to a value, such as zero, as follows:
+
+ [!code-cs[csrefKeywordsTypes#3](../../../csharp/language-reference/keywords/codesnippet/CSharp/bool_3.cs)]
+
+## Example
+ In this example, you enter a character from the keyboard and the program checks if the input character is a letter. If it is a letter, it checks if it is lowercase or uppercase. These checks are performed with the , and , both of which return the `bool` type:
+
+ [!code-cs[csrefKeywordsTypes#4](../../../csharp/language-reference/keywords/codesnippet/CSharp/bool_4.cs)]
+
+## C# Language Specification
+ [!INCLUDE[CSharplangspec](../../../csharp/language-reference/keywords/includes/csharplangspec_md.md)]
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [Integral Types Table](../../../csharp/language-reference/keywords/integral-types-table.md)
+ [Built-In Types Table](../../../csharp/language-reference/keywords/built-in-types-table.md)
+ [Implicit Numeric Conversions Table](../../../csharp/language-reference/keywords/implicit-numeric-conversions-table.md)
+ [Explicit Numeric Conversions Table](../../../csharp/language-reference/keywords/explicit-numeric-conversions-table.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/break.md b/docs/csharp/language-reference/keywords/break.md
new file mode 100644
index 0000000000000..6f14f8342334d
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/break.md
@@ -0,0 +1,73 @@
+---
+title: "break (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "break"
+ - "break_CSharpKeyword"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "break keyword [C#]"
+ms.assetid: be2571ed-efb0-4965-b122-81e5b09db0b9
+caps.latest.revision: 21
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# break (C# Reference)
+The `break` statement terminates the closest enclosing loop or [switch](../../../csharp/language-reference/keywords/switch.md) statement in which it appears. Control is passed to the statement that follows the terminated statement, if any.
+
+## Example
+ In this example, the conditional statement contains a counter that is supposed to count from 1 to 100; however, the `break` statement terminates the loop after 4 counts.
+
+ [!code-cs[csrefKeywordsJump#1](../../../csharp/language-reference/keywords/codesnippet/CSharp/break_1.cs)]
+
+## Example
+ In this example, the `break` statement is used to break out of an inner nested loop, and return control to the outer loop.
+
+ [!code-cs[csrefKeywordsJump#7](../../../csharp/language-reference/keywords/codesnippet/CSharp/break_2.cs)]
+
+## Example
+ This example demonstrates the use of `break` in a [switch](../../../csharp/language-reference/keywords/switch.md) statement.
+
+ [!code-cs[csrefKeywordsJump#2](../../../csharp/language-reference/keywords/codesnippet/CSharp/break_3.cs)]
+
+ If you entered `4`, the output would be:
+
+```
+Enter your selection (1, 2, or 3): 4
+Sorry, invalid selection.
+```
+
+## C# Language Specification
+ [!INCLUDE[CSharplangspec](../../../csharp/language-reference/keywords/includes/csharplangspec_md.md)]
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [switch](../../../csharp/language-reference/keywords/switch.md)
+ [Jump Statements](../../../csharp/language-reference/keywords/jump-statements.md)
+ [Iteration Statements](../../../csharp/language-reference/keywords/iteration-statements.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/built-in-types-table.md b/docs/csharp/language-reference/keywords/built-in-types-table.md
new file mode 100644
index 0000000000000..40d4e268f3123
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/built-in-types-table.md
@@ -0,0 +1,84 @@
+---
+title: "Built-In Types Table (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "types [C#], built-in"
+ - "built-in C# types"
+ms.assetid: 54f901f2-bf2f-472c-ae8d-73e8ecfc57fe
+caps.latest.revision: 12
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Built-In Types Table (C# Reference)
+The following table shows the keywords for built-in C# types, which are aliases of predefined types in the namespace.
+
+|C# Type|.NET Framework Type|
+|--------------|-------------------------|
+|[bool](../../../csharp/language-reference/keywords/bool.md)|`System.Boolean`|
+|[byte](../../../csharp/language-reference/keywords/byte.md)|`System.Byte`|
+|[sbyte](../../../csharp/language-reference/keywords/sbyte.md)|`System.SByte`|
+|[char](../../../csharp/language-reference/keywords/char.md)|`System.Char`|
+|[decimal](../../../csharp/language-reference/keywords/decimal.md)|`System.Decimal`|
+|[double](../../../csharp/language-reference/keywords/double.md)|`System.Double`|
+|[float](../../../csharp/language-reference/keywords/float.md)|`System.Single`|
+|[int](../../../csharp/language-reference/keywords/int.md)|`System.Int32`|
+|[uint](../../../csharp/language-reference/keywords/uint.md)|`System.UInt32`|
+|[long](../../../csharp/language-reference/keywords/long.md)|`System.Int64`|
+|[ulong](../../../csharp/language-reference/keywords/ulong.md)|`System.UInt64`|
+|[object](../../../csharp/language-reference/keywords/object.md)|`System.Object`|
+|[short](../../../csharp/language-reference/keywords/short.md)|`System.Int16`|
+|[ushort](../../../csharp/language-reference/keywords/ushort.md)|`System.UInt16`|
+|[string](../../../csharp/language-reference/keywords/string.md)|`System.String`|
+
+## Remarks
+ All of the types in the table, except `object` and `string`, are referred to as simple types.
+
+ The C# type keywords and their aliases are interchangeable. For example, you can declare an integer variable by using either of the following declarations:
+
+```
+int x = 123;
+System.Int32 x = 123;
+```
+
+ To display the actual type for any C# type, use the system method `GetType()`. For example, the following statement displays the system alias that represents the type of `myVariable`:
+
+```
+Console.WriteLine(myVariable.GetType());
+```
+
+ You can also use the [typeof](../../../csharp/language-reference/keywords/typeof.md) operator.
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [Value Types](../../../csharp/language-reference/keywords/value-types.md)
+ [Default Values Table](../../../csharp/language-reference/keywords/default-values-table.md)
+ [Formatting Numeric Results Table](../../../csharp/language-reference/keywords/formatting-numeric-results-table.md)
+ [dynamic](../../../csharp/language-reference/keywords/dynamic.md)
+ [Reference Tables for Types](../../../csharp/language-reference/keywords/reference-tables-for-types.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/by.md b/docs/csharp/language-reference/keywords/by.md
new file mode 100644
index 0000000000000..3f35e167ea777
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/by.md
@@ -0,0 +1,48 @@
+---
+title: "by (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "by"
+ - "by_CSharpKeyword"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "by keyword [C#]"
+ms.assetid: efe6f0e3-be40-4df2-a144-c7db968ae052
+caps.latest.revision: 6
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# by (C# Reference)
+The `by` contextual keyword is used in the `group` clause in a query expression to specify how the returned items should be grouped. For more information, see [group clause](../../../csharp/language-reference/keywords/group-clause.md).
+
+## Example
+ The following example shows the use of the `by` contextual keyword in a `group` clause to specify that the students should be grouped according to the first letter of the last name of each student.
+
+ [!code-cs[csrefKeywordsContextual#10](../../../csharp/language-reference/keywords/codesnippet/CSharp/by_1.cs)]
+
+## See Also
+ [LINQ Query Expressions](../../../csharp/programming-guide/linq-query-expressions/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/byte.md b/docs/csharp/language-reference/keywords/byte.md
new file mode 100644
index 0000000000000..2ea814c286632
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/byte.md
@@ -0,0 +1,127 @@
+---
+title: "byte (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "byte"
+ - "byte_CSharpKeyword"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "byte keyword [C#]"
+ms.assetid: 111f1db9-ca32-4f0e-b497-4783517eda47
+caps.latest.revision: 19
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# byte (C# Reference)
+The `byte` keyword denotes an integral type that stores values as indicated in the following table.
+
+|Type|Range|Size|.NET Framework type|
+|----------|-----------|----------|-------------------------|
+|`byte`|0 to 255|Unsigned 8-bit integer||
+
+## Literals
+ You can declare and initialize a `byte` variable like this example:
+
+```
+byte myByte = 255;
+```
+
+ In the preceding declaration, the integer literal `255` is implicitly converted from [int](../../../csharp/language-reference/keywords/int.md) to `byte`. If the integer literal exceeds the range of `byte`, a compilation error will occur.
+
+## Conversions
+ There is a predefined implicit conversion from `byte` to [short](../../../csharp/language-reference/keywords/short.md), [ushort](../../../csharp/language-reference/keywords/ushort.md), [int](../../../csharp/language-reference/keywords/int.md), [uint](../../../csharp/language-reference/keywords/uint.md), [long](../../../csharp/language-reference/keywords/long.md), [ulong](../../../csharp/language-reference/keywords/ulong.md), [float](../../../csharp/language-reference/keywords/float.md), [double](../../../csharp/language-reference/keywords/double.md), or [decimal](../../../csharp/language-reference/keywords/decimal.md).
+
+ You cannot implicitly convert non-literal numeric types of larger storage size to `byte`. For more information on the storage sizes of integral types, see [Integral Types Table](../../../csharp/language-reference/keywords/integral-types-table.md). Consider, for example, the following two `byte` variables `x` and `y`:
+
+```
+
+byte x = 10, y = 20;
+```
+
+ The following assignment statement will produce a compilation error, because the arithmetic expression on the right-hand side of the assignment operator evaluates to `int` by default.
+
+```
+// Error: conversion from int to byte:
+byte z = x + y;
+```
+
+ To fix this problem, use a cast:
+
+```
+// OK: explicit conversion:
+byte z = (byte)(x + y);
+```
+
+ It is possible though, to use the following statements where the destination variable has the same storage size or a larger storage size:
+
+```
+int x = 10, y = 20;
+int m = x + y;
+long n = x + y;
+```
+
+ Also, there is no implicit conversion from floating-point types to `byte`. For example, the following statement generates a compiler error unless an explicit cast is used:
+
+```
+// Error: no implicit conversion from double:
+byte x = 3.0;
+// OK: explicit conversion:
+byte y = (byte)3.0;
+```
+
+ When calling overloaded methods, a cast must be used. Consider, for example, the following overloaded methods that use `byte` and [int](../../../csharp/language-reference/keywords/int.md) parameters:
+
+```
+public static void SampleMethod(int i) {}
+public static void SampleMethod(byte b) {}
+```
+
+ Using the `byte` cast guarantees that the correct type is called, for example:
+
+```
+// Calling the method with the int parameter:
+SampleMethod(5);
+// Calling the method with the byte parameter:
+SampleMethod((byte)5);
+```
+
+ For information on arithmetic expressions with mixed floating-point types and integral types, see [float](../../../csharp/language-reference/keywords/float.md) and [double](../../../csharp/language-reference/keywords/double.md).
+
+ For more information on implicit numeric conversion rules, see the [Implicit Numeric Conversions Table](../../../csharp/language-reference/keywords/implicit-numeric-conversions-table.md).
+
+## C# Language Specification
+ [!INCLUDE[CSharplangspec](../../../csharp/language-reference/keywords/includes/csharplangspec_md.md)]
+
+## See Also
+
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [Integral Types Table](../../../csharp/language-reference/keywords/integral-types-table.md)
+ [Built-In Types Table](../../../csharp/language-reference/keywords/built-in-types-table.md)
+ [Implicit Numeric Conversions Table](../../../csharp/language-reference/keywords/implicit-numeric-conversions-table.md)
+ [Explicit Numeric Conversions Table](../../../csharp/language-reference/keywords/explicit-numeric-conversions-table.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/char.md b/docs/csharp/language-reference/keywords/char.md
new file mode 100644
index 0000000000000..ec57afc9c0e47
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/char.md
@@ -0,0 +1,72 @@
+---
+title: "char (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "char"
+ - "char_CSharpKeyword"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "char data type [C#]"
+ms.assetid: b51cf4fb-124c-4067-af48-afbac122b228
+caps.latest.revision: 27
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# char (C# Reference)
+The `char` keyword is used to declare an instance of the structure that the .NET Framework uses to represent a Unicode character. The value of a `Char` object is a 16-bit numeric (ordinal) value.
+
+ Unicode characters are used to represent most of the written languages throughout the world.
+
+|Type|Range|Size|.NET Framework type|
+|----------|-----------|----------|-------------------------|
+|`char`|U+0000 to U+FFFF|Unicode 16-bit character||
+
+## Literals
+ Constants of the `char` type can be written as character literals, hexadecimal escape sequence, or Unicode representation. You can also cast the integral character codes. In the following example four `char` variables are initialized with the same character `X`:
+
+ [!code-cs[csrefKeywordsTypes#19](../../../csharp/language-reference/keywords/codesnippet/CSharp/char_1.cs)]
+
+## Conversions
+ A `char` can be implicitly converted to [ushort](../../../csharp/language-reference/keywords/ushort.md), [int](../../../csharp/language-reference/keywords/int.md), [uint](../../../csharp/language-reference/keywords/uint.md), [long](../../../csharp/language-reference/keywords/long.md), [ulong](../../../csharp/language-reference/keywords/ulong.md), [float](../../../csharp/language-reference/keywords/float.md), [double](../../../csharp/language-reference/keywords/double.md), or [decimal](../../../csharp/language-reference/keywords/decimal.md). However, there are no implicit conversions from other types to the `char` type.
+
+ The type provides several static methods for working with `char` values.
+
+## C# Language Specification
+ [!INCLUDE[CSharplangspec](../../../csharp/language-reference/keywords/includes/csharplangspec_md.md)]
+
+## See Also
+
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [Integral Types Table](../../../csharp/language-reference/keywords/integral-types-table.md)
+ [Built-In Types Table](../../../csharp/language-reference/keywords/built-in-types-table.md)
+ [Implicit Numeric Conversions Table](../../../csharp/language-reference/keywords/implicit-numeric-conversions-table.md)
+ [Explicit Numeric Conversions Table](../../../csharp/language-reference/keywords/explicit-numeric-conversions-table.md)
+ [Nullable Types](../../../csharp/programming-guide/nullable-types/index.md)
+ [Strings](../../../csharp/programming-guide/strings/index.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/checked-and-unchecked.md b/docs/csharp/language-reference/keywords/checked-and-unchecked.md
new file mode 100644
index 0000000000000..3cdc9759157da
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/checked-and-unchecked.md
@@ -0,0 +1,64 @@
+---
+title: "Checked and Unchecked (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "operators [C#], checked and unchecked"
+ - "exceptions [C#], overflow checking"
+ - "checked statement [C#]"
+ - "overflow checking [C#]"
+ - "unchecked statement [C#]"
+ - "statements [C#], checked and unchecked"
+ms.assetid: a84bc877-2c7f-4396-8735-1ce97c42f35e
+caps.latest.revision: 17
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# Checked and Unchecked (C# Reference)
+C# statements can execute in either checked or unchecked context. In a checked context, arithmetic overflow raises an exception. In an unchecked context, arithmetic overflow is ignored and the result is truncated.
+
+- [checked](../../../csharp/language-reference/keywords/checked.md) Specify checked context.
+
+- [unchecked](../../../csharp/language-reference/keywords/unchecked.md) Specify unchecked context.
+
+ If neither `checked` nor `unchecked` is specified, the default context depends on external factors such as compiler options.
+
+ The following operations are affected by the overflow checking:
+
+- Expressions using the following predefined operators on integral types:
+
+ `++` `--` - (unary) `+` - `*` `/`
+
+- Explicit numeric conversions between integral types.
+
+ The [/checked](../../../csharp/language-reference/compiler-options/checked-compiler-option.md) compiler option lets you specify checked or unchecked context for all integer arithmetic statements that are not explicitly in the scope of a `checked` or `unchecked` keyword.
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [Statement Keywords](../../../csharp/language-reference/keywords/statement-keywords.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/checked.md b/docs/csharp/language-reference/keywords/checked.md
new file mode 100644
index 0000000000000..8d3111775a640
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/checked.md
@@ -0,0 +1,67 @@
+---
+title: "checked (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "checked_CSharpKeyword"
+ - "checked"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "checked keyword [C#]"
+ms.assetid: 718a1194-988d-48a3-b089-d6ee8bd1608d
+caps.latest.revision: 24
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "cs-cz"
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "pl-pl"
+ - "pt-br"
+ - "ru-ru"
+ - "tr-tr"
+ - "zh-cn"
+ - "zh-tw"
+---
+# checked (C# Reference)
+The `checked` keyword is used to explicitly enable overflow checking for integral-type arithmetic operations and conversions.
+
+ By default, an expression that contains only constant values causes a compiler error if the expression produces a value that is outside the range of the destination type. If the expression contains one or more non-constant values, the compiler does not detect the overflow. Evaluating the expression assigned to `i2` in the following example does not cause a compiler error.
+
+ [!code-cs[csrefKeywordsChecked#3](../../../csharp/language-reference/keywords/codesnippet/CSharp/checked_1.cs)]
+
+ By default, these non-constant expressions are not checked for overflow at run time either, and they do not raise overflow exceptions. The previous example displays -2,147,483,639 as the sum of two positive integers.
+
+ Overflow checking can be enabled by compiler options, environment configuration, or use of the `checked` keyword. The following examples demonstrate how to use a `checked` expression or a `checked` block to detect the overflow that is produced by the previous sum at run time. Both examples raise an overflow exception.
+
+ [!code-cs[csrefKeywordsChecked#4](../../../csharp/language-reference/keywords/codesnippet/CSharp/checked_2.cs)]
+
+ The [unchecked](../../../csharp/language-reference/keywords/unchecked.md) keyword can be used to prevent overflow checking.
+
+## Example
+ This sample shows how to use `checked` to enable overflow checking at run time.
+
+ [!code-cs[csrefKeywordsChecked#1](../../../csharp/language-reference/keywords/codesnippet/CSharp/checked_3.cs)]
+
+## C# Language Specification
+ [!INCLUDE[CSharplangspec](../../../csharp/language-reference/keywords/includes/csharplangspec_md.md)]
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [Checked and Unchecked](../../../csharp/language-reference/keywords/checked-and-unchecked.md)
+ [unchecked](../../../csharp/language-reference/keywords/unchecked.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/class.md b/docs/csharp/language-reference/keywords/class.md
new file mode 100644
index 0000000000000..fefdd4725ed9b
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/class.md
@@ -0,0 +1,123 @@
+---
+title: "class (C# Reference) | Microsoft Docs"
+ms.custom: ""
+ms.date: "2015-07-20"
+ms.prod: "visual-studio-dev14"
+ms.reviewer: ""
+ms.suite: ""
+ms.technology:
+ - "devlang-csharp"
+ms.tgt_pltfrm: ""
+ms.topic: "article"
+f1_keywords:
+ - "class_CSharpKeyword"
+ - "class"
+dev_langs:
+ - "CSharp"
+helpviewer_keywords:
+ - "class keyword [C#]"
+ms.assetid: b95d8815-de18-4c3f-a8cc-a0a53bdf8690
+caps.latest.revision: 30
+author: "BillWagner"
+ms.author: "wiwagn"
+manager: "wpickett"
+translation.priority.ht:
+ - "de-de"
+ - "es-es"
+ - "fr-fr"
+ - "it-it"
+ - "ja-jp"
+ - "ko-kr"
+ - "ru-ru"
+ - "zh-cn"
+ - "zh-tw"
+translation.priority.mt:
+ - "cs-cz"
+ - "pl-pl"
+ - "pt-br"
+ - "tr-tr"
+---
+# class (C# Reference)
+Classes are declared using the keyword `class`, as shown in the following example:
+
+```
+
+ class TestClass
+{
+ // Methods, properties, fields, events, delegates
+ // and nested classes go here.
+}
+```
+
+## Remarks
+ Only single inheritance is allowed in C#. In other words, a class can inherit implementation from one base class only. However, a class can implement more than one interface. The following table shows examples of class inheritance and interface implementation:
+
+|Inheritance|Example|
+|-----------------|-------------|
+|None|`class ClassA { }`|
+|Single|`class DerivedClass: BaseClass { }`|
+|None, implements two interfaces|`class ImplClass: IFace1, IFace2 { }`|
+|Single, implements one interface|`class ImplDerivedClass: BaseClass, IFace1 { }`|
+
+ Classes that you declare directly within a namespace, not nested within other classes, can be either [public](../../../csharp/language-reference/keywords/public.md) or [internal](../../../csharp/language-reference/keywords/internal.md). Classes are `internal` by default.
+
+ Class members, including nested classes, can be [public](../../../csharp/language-reference/keywords/public.md), `protected internal`, [protected](../../../csharp/language-reference/keywords/protected.md), [internal](../../../csharp/language-reference/keywords/internal.md), or [private](../../../csharp/language-reference/keywords/private.md). Members are [private](../../../csharp/language-reference/keywords/private.md) by default.
+
+ For more information, see [Access Modifiers](../../../csharp/programming-guide/classes-and-structs/access-modifiers.md).
+
+ You can declare generic classes that have type parameters. For more information, see [Generic Classes](../../../csharp/programming-guide/generics/generic-classes.md).
+
+ A class can contain declarations of the following members:
+
+- [Constructors](../../../csharp/programming-guide/classes-and-structs/constructors.md)
+
+- [Destructors](../../../csharp/programming-guide/classes-and-structs/destructors.md)
+
+- [Constants](../../../csharp/programming-guide/classes-and-structs/constants.md)
+
+- [Fields](../../../csharp/programming-guide/classes-and-structs/fields.md)
+
+- [Methods](../../../csharp/programming-guide/classes-and-structs/methods.md)
+
+- [Properties](../../../csharp/programming-guide/classes-and-structs/properties.md)
+
+- [Indexers](../../../csharp/programming-guide/indexers/index.md)
+
+- [Operators](../../../csharp/programming-guide/statements-expressions-operators/operators.md)
+
+- [Events](../../../csharp/programming-guide/events/index.md)
+
+- [Delegates](../../../csharp/programming-guide/delegates/index.md)
+
+- [Classes](../../../csharp/programming-guide/classes-and-structs/classes.md)
+
+- [Interfaces](../../../csharp/programming-guide/interfaces/index.md)
+
+- [Structs](../../../csharp/programming-guide/classes-and-structs/structs.md)
+
+## Example
+ The following example demonstrates declaring class fields, constructors, and methods. It also demonstrates object instantiation and printing instance data. In this example, two classes are declared, the `Child` class, which contains two private fields (`name` and `age`) and two public methods. The second class, `StringTest`, is used to contain `Main`.
+
+ [!code-cs[csrefKeywordsTypes#5](../../../csharp/language-reference/keywords/codesnippet/CSharp/class_1.cs)]
+
+## Comments
+ Notice, in the preceding example, that the private fields (`name` and `age`) can only be accessed through the public methods of the `Child` class. For example, you cannot print the child's name, from the `Main` method, using a statement like this:
+
+```
+Console.Write(child1.name); // Error
+```
+
+ Accessing private members of `Child` from `Main` would only be possible if `Main` were a member of the class.
+
+ Types declared inside a class without an access modifier default to `private`, so the data members in this example would still be `private` if the keyword were removed.
+
+ Finally, notice that for the object created using the default constructor (`child3`), the age field was initialized to zero by default.
+
+## C# Language Specification
+ [!INCLUDE[CSharplangspec](../../../csharp/language-reference/keywords/includes/csharplangspec_md.md)]
+
+## See Also
+ [C# Reference](../../../csharp/language-reference/index.md)
+ [C# Programming Guide](../../../csharp/programming-guide/index.md)
+ [C# Keywords](../../../csharp/language-reference/keywords/index.md)
+ [Reference Types](../../../csharp/language-reference/keywords/reference-types.md)
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/abstract_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/abstract_1.cs
new file mode 100644
index 0000000000000..59ed67a2fdfcb
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/abstract_1.cs
@@ -0,0 +1,37 @@
+
+ abstract class ShapesClass
+ {
+ abstract public int Area();
+ }
+ class Square : ShapesClass
+ {
+ int side = 0;
+
+ public Square(int n)
+ {
+ side = n;
+ }
+ // Area method is required to avoid
+ // a compile-time error.
+ public override int Area()
+ {
+ return side * side;
+ }
+
+ static void Main()
+ {
+ Square sq = new Square(12);
+ Console.WriteLine("Area of the square = {0}", sq.Area());
+ }
+
+ interface I
+ {
+ void M();
+ }
+ abstract class C : I
+ {
+ public abstract void M();
+ }
+
+ }
+ // Output: Area of the square = 144
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/abstract_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/abstract_2.cs
new file mode 100644
index 0000000000000..4c7224c858a8d
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/abstract_2.cs
@@ -0,0 +1,8 @@
+ interface I
+ {
+ void M();
+ }
+ abstract class C : I
+ {
+ public abstract void M();
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/abstract_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/abstract_3.cs
new file mode 100644
index 0000000000000..cffc43aebcd28
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/abstract_3.cs
@@ -0,0 +1,41 @@
+ abstract class BaseClass // Abstract class
+ {
+ protected int _x = 100;
+ protected int _y = 150;
+ public abstract void AbstractMethod(); // Abstract method
+ public abstract int X { get; }
+ public abstract int Y { get; }
+ }
+
+ class DerivedClass : BaseClass
+ {
+ public override void AbstractMethod()
+ {
+ _x++;
+ _y++;
+ }
+
+ public override int X // overriding property
+ {
+ get
+ {
+ return _x + 10;
+ }
+ }
+
+ public override int Y // overriding property
+ {
+ get
+ {
+ return _y + 10;
+ }
+ }
+
+ static void Main()
+ {
+ DerivedClass o = new DerivedClass();
+ o.AbstractMethod();
+ Console.WriteLine("x = {0}, y = {1}", o.X, o.Y);
+ }
+ }
+ // Output: x = 111, y = 161
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/accessibility-domain_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/accessibility-domain_1.cs
new file mode 100644
index 0000000000000..bc8d095985dcf
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/accessibility-domain_1.cs
@@ -0,0 +1,77 @@
+
+namespace AccessibilityDomainNamespace
+{
+ public class T1
+ {
+ public static int publicInt;
+ internal static int internalInt;
+ private static int privateInt = 0;
+ static T1()
+ {
+ // T1 can access public or internal members
+ // in a public or private (or internal) nested class
+ M1.publicInt = 1;
+ M1.internalInt = 2;
+ M2.publicInt = 3;
+ M2.internalInt = 4;
+
+ // Cannot access the private member privateInt
+ // in either class:
+ // M1.privateInt = 2; //CS0122
+ }
+
+ public class M1
+ {
+ public static int publicInt;
+ internal static int internalInt;
+ private static int privateInt = 0;
+ }
+
+ private class M2
+ {
+ public static int publicInt = 0;
+ internal static int internalInt = 0;
+ private static int privateInt = 0;
+ }
+ }
+
+ class MainClass
+ {
+ static void Main()
+ {
+ // Access is unlimited:
+ T1.publicInt = 1;
+
+ // Accessible only in current assembly:
+ T1.internalInt = 2;
+
+ // Error CS0122: inaccessible outside T1:
+ // T1.privateInt = 3;
+
+ // Access is unlimited:
+ T1.M1.publicInt = 1;
+
+ // Accessible only in current assembly:
+ T1.M1.internalInt = 2;
+
+ // Error CS0122: inaccessible outside M1:
+ // T1.M1.privateInt = 3;
+
+ // Error CS0122: inaccessible outside T1:
+ // T1.M2.publicInt = 1;
+
+ // Error CS0122: inaccessible outside T1:
+ // T1.M2.internalInt = 2;
+
+ // Error CS0122: inaccessible outside M2:
+ // T1.M2.privateInt = 3;
+
+
+
+ // Keep the console open in debug mode.
+ System.Console.WriteLine("Press any key to exit.");
+ System.Console.ReadKey();
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/add_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/add_1.cs
new file mode 100644
index 0000000000000..0c2903a6b43c1
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/add_1.cs
@@ -0,0 +1,24 @@
+
+ class Events : IDrawingObject
+ {
+ event EventHandler PreDrawEvent;
+
+ event EventHandler IDrawingObject.OnDraw
+ {
+ add
+ {
+ lock (PreDrawEvent)
+ {
+ PreDrawEvent += value;
+ }
+ }
+ remove
+ {
+ lock (PreDrawEvent)
+ {
+ PreDrawEvent -= value;
+ }
+ }
+ }
+
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/as_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/as_1.cs
new file mode 100644
index 0000000000000..8e02aca3c74db
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/as_1.cs
@@ -0,0 +1,29 @@
+
+ class csrefKeywordsOperators
+ {
+ class Base
+ {
+ public override string ToString()
+ {
+ return "Base";
+ }
+ }
+ class Derived : Base
+ { }
+
+ class Program
+ {
+ static void Main()
+ {
+
+ Derived d = new Derived();
+
+ Base b = d as Base;
+ if (b != null)
+ {
+ Console.WriteLine(b.ToString());
+ }
+
+ }
+ }
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/as_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/as_2.cs
new file mode 100644
index 0000000000000..4411701355924
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/as_2.cs
@@ -0,0 +1,39 @@
+ class ClassA { }
+ class ClassB { }
+
+ class MainClass
+ {
+ static void Main()
+ {
+ object[] objArray = new object[6];
+ objArray[0] = new ClassA();
+ objArray[1] = new ClassB();
+ objArray[2] = "hello";
+ objArray[3] = 123;
+ objArray[4] = 123.4;
+ objArray[5] = null;
+
+ for (int i = 0; i < objArray.Length; ++i)
+ {
+ string s = objArray[i] as string;
+ Console.Write("{0}:", i);
+ if (s != null)
+ {
+ Console.WriteLine("'" + s + "'");
+ }
+ else
+ {
+ Console.WriteLine("not a string");
+ }
+ }
+ }
+ }
+ /*
+ Output:
+ 0:not a string
+ 1:not a string
+ 2:'hello'
+ 3:not a string
+ 4:not a string
+ 5:not a string
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/ascending_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/ascending_1.cs
new file mode 100644
index 0000000000000..2e2f0d826af06
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/ascending_1.cs
@@ -0,0 +1,4 @@
+ IEnumerable sortAscendingQuery =
+ from vegetable in vegetables
+ orderby vegetable ascending
+ select vegetable;
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/base_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/base_1.cs
new file mode 100644
index 0000000000000..e75aa9e73336d
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/base_1.cs
@@ -0,0 +1,36 @@
+ public class Person
+ {
+ protected string ssn = "444-55-6666";
+ protected string name = "John L. Malgraine";
+
+ public virtual void GetInfo()
+ {
+ Console.WriteLine("Name: {0}", name);
+ Console.WriteLine("SSN: {0}", ssn);
+ }
+ }
+ class Employee : Person
+ {
+ public string id = "ABC567EFG";
+ public override void GetInfo()
+ {
+ // Calling the base class GetInfo method:
+ base.GetInfo();
+ Console.WriteLine("Employee ID: {0}", id);
+ }
+ }
+
+ class TestClass
+ {
+ static void Main()
+ {
+ Employee E = new Employee();
+ E.GetInfo();
+ }
+ }
+ /*
+ Output
+ Name: John L. Malgraine
+ SSN: 444-55-6666
+ Employee ID: ABC567EFG
+ */
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/base_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/base_2.cs
new file mode 100644
index 0000000000000..4452b9c95cb61
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/base_2.cs
@@ -0,0 +1,44 @@
+ public class BaseClass
+ {
+ int num;
+
+ public BaseClass()
+ {
+ Console.WriteLine("in BaseClass()");
+ }
+
+ public BaseClass(int i)
+ {
+ num = i;
+ Console.WriteLine("in BaseClass(int i)");
+ }
+
+ public int GetNum()
+ {
+ return num;
+ }
+ }
+
+ public class DerivedClass : BaseClass
+ {
+ // This constructor will call BaseClass.BaseClass()
+ public DerivedClass() : base()
+ {
+ }
+
+ // This constructor will call BaseClass.BaseClass(int i)
+ public DerivedClass(int i) : base(i)
+ {
+ }
+
+ static void Main()
+ {
+ DerivedClass md = new DerivedClass();
+ DerivedClass md1 = new DerivedClass(1);
+ }
+ }
+ /*
+ Output:
+ in BaseClass()
+ in BaseClass(int i)
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/bool_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/bool_1.cs
new file mode 100644
index 0000000000000..9aaa84ccc43f0
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/bool_1.cs
@@ -0,0 +1,30 @@
+ public class BoolTest
+ {
+ static void Main()
+ {
+ bool b = true;
+
+ // WriteLine automatically converts the value of b to text.
+ Console.WriteLine(b);
+
+ int days = DateTime.Now.DayOfYear;
+
+
+ // Assign the result of a boolean expression to b.
+ b = (days % 2 == 0);
+
+ // Branch depending on whether b is true or false.
+ if (b)
+ {
+ Console.WriteLine("days is an even number");
+ }
+ else
+ {
+ Console.WriteLine("days is an odd number");
+ }
+ }
+ }
+ /* Output:
+ True
+ days is an number
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/bool_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/bool_2.cs
new file mode 100644
index 0000000000000..e7f5c2da1f836
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/bool_2.cs
@@ -0,0 +1,6 @@
+ int x = 123;
+
+ // if (x) // Error: "Cannot implicitly convert type 'int' to 'bool'"
+ {
+ Console.Write("The value of x is nonzero.");
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/bool_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/bool_3.cs
new file mode 100644
index 0000000000000..f572d07730696
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/bool_3.cs
@@ -0,0 +1,5 @@
+
+ if (x != 0) // The C# way
+ {
+ Console.Write("The value of x is nonzero.");
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/bool_4.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/bool_4.cs
new file mode 100644
index 0000000000000..bc6c25bc42faf
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/bool_4.cs
@@ -0,0 +1,33 @@
+ public class BoolKeyTest
+ {
+ static void Main()
+ {
+ Console.Write("Enter a character: ");
+ char c = (char)Console.Read();
+ if (Char.IsLetter(c))
+ {
+ if (Char.IsLower(c))
+ {
+ Console.WriteLine("The character is lowercase.");
+ }
+ else
+ {
+ Console.WriteLine("The character is uppercase.");
+ }
+ }
+ else
+ {
+ Console.WriteLine("Not an alphabetic character.");
+ }
+ }
+ }
+ /* Sample Output:
+ Enter a character: X
+ The character is uppercase.
+
+ Enter a character: x
+ The character is lowercase.
+
+ Enter a character: 2
+ The character is not an alphabetic character.
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/break_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/break_1.cs
new file mode 100644
index 0000000000000..6351c1c63d2a0
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/break_1.cs
@@ -0,0 +1,25 @@
+ class BreakTest
+ {
+ static void Main()
+ {
+ for (int i = 1; i <= 100; i++)
+ {
+ if (i == 5)
+ {
+ break;
+ }
+ Console.WriteLine(i);
+ }
+
+ // Keep the console open in debug mode.
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+ }
+ /*
+ Output:
+ 1
+ 2
+ 3
+ 4
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/break_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/break_2.cs
new file mode 100644
index 0000000000000..8285c385c992b
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/break_2.cs
@@ -0,0 +1,55 @@
+ class BreakInNestedLoops
+ {
+ static void Main(string[] args)
+ {
+
+ int[] numbers = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
+ char[] letters = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' };
+
+ // Outer loop
+ for (int x = 0; x < numbers.Length; x++)
+ {
+ Console.WriteLine("num = {0}", numbers[x]);
+
+ // Inner loop
+ for (int y = 0; y < letters.Length; y++)
+ {
+ if (y == x)
+ {
+ // Return control to outer loop
+ break;
+ }
+ Console.Write(" {0} ", letters[y]);
+ }
+ Console.WriteLine();
+ }
+
+ // Keep the console open in debug mode.
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+ }
+
+ /*
+ * Output:
+ num = 0
+
+ num = 1
+ a
+ num = 2
+ a b
+ num = 3
+ a b c
+ num = 4
+ a b c d
+ num = 5
+ a b c d e
+ num = 6
+ a b c d e f
+ num = 7
+ a b c d e f g
+ num = 8
+ a b c d e f g h
+ num = 9
+ a b c d e f g h i
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/break_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/break_3.cs
new file mode 100644
index 0000000000000..f1366883601b8
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/break_3.cs
@@ -0,0 +1,36 @@
+ class Switch
+ {
+ static void Main()
+ {
+ Console.Write("Enter your selection (1, 2, or 3): ");
+ string s = Console.ReadLine();
+ int n = Int32.Parse(s);
+
+ switch (n)
+ {
+ case 1:
+ Console.WriteLine("Current value is {0}", 1);
+ break;
+ case 2:
+ Console.WriteLine("Current value is {0}", 2);
+ break;
+ case 3:
+ Console.WriteLine("Current value is {0}", 3);
+ break;
+ default:
+ Console.WriteLine("Sorry, invalid selection.");
+ break;
+ }
+
+ // Keep the console open in debug mode.
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+ }
+ /*
+ Sample Input: 1
+
+ Sample Output:
+ Enter your selection (1, 2, or 3): 1
+ Current value is 1
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/by_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/by_1.cs
new file mode 100644
index 0000000000000..138f7b085df0b
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/by_1.cs
@@ -0,0 +1,2 @@
+ var query = from student in students
+ group student by student.LastName[0];
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/char_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/char_1.cs
new file mode 100644
index 0000000000000..191298d8f77d5
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/char_1.cs
@@ -0,0 +1,12 @@
+ char[] chars = new char[4];
+
+ chars[0] = 'X'; // Character literal
+ chars[1] = '\x0058'; // Hexadecimal
+ chars[2] = (char)88; // Cast from integral type
+ chars[3] = '\u0058'; // Unicode
+
+ foreach (char c in chars)
+ {
+ Console.Write(c + " ");
+ }
+ // Output: X X X X
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/checked_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/checked_1.cs
new file mode 100644
index 0000000000000..71b1047805ee4
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/checked_1.cs
@@ -0,0 +1,13 @@
+ // The following example causes compiler error CS0220 because 2147483647
+ // is the maximum value for integers.
+ //int i1 = 2147483647 + 10;
+
+ // The following example, which includes variable ten, does not cause
+ // a compiler error.
+ int ten = 10;
+ int i2 = 2147483647 + ten;
+
+ // By default, the overflow in the previous statement also does
+ // not cause a run-time exception. The following line displays
+ // -2,147,483,639 as the sum of 2,147,483,647 and 10.
+ Console.WriteLine(i2);
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/checked_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/checked_2.cs
new file mode 100644
index 0000000000000..608a9720dba80
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/checked_2.cs
@@ -0,0 +1,12 @@
+ // If the previous sum is attempted in a checked environment, an
+ // OverflowException error is raised.
+
+ // Checked expression.
+ Console.WriteLine(checked(2147483647 + ten));
+
+ // Checked block.
+ checked
+ {
+ int i3 = 2147483647 + ten;
+ Console.WriteLine(i3);
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/checked_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/checked_3.cs
new file mode 100644
index 0000000000000..fb7d0f847378f
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/checked_3.cs
@@ -0,0 +1,60 @@
+ class OverFlowTest
+ {
+ // Set maxIntValue to the maximum value for integers.
+ static int maxIntValue = 2147483647;
+
+ // Using a checked expression.
+ static int CheckedMethod()
+ {
+ int z = 0;
+ try
+ {
+ // The following line raises an exception because it is checked.
+ z = checked(maxIntValue + 10);
+ }
+ catch (System.OverflowException e)
+ {
+ // The following line displays information about the error.
+ Console.WriteLine("CHECKED and CAUGHT: " + e.ToString());
+ }
+ // The value of z is still 0.
+ return z;
+ }
+
+ // Using an unchecked expression.
+ static int UncheckedMethod()
+ {
+ int z = 0;
+ try
+ {
+ // The following calculation is unchecked and will not
+ // raise an exception.
+ z = maxIntValue + 10;
+ }
+ catch (System.OverflowException e)
+ {
+ // The following line will not be executed.
+ Console.WriteLine("UNCHECKED and CAUGHT: " + e.ToString());
+ }
+ // Because of the undetected overflow, the sum of 2147483647 + 10 is
+ // returned as -2147483639.
+ return z;
+ }
+
+ static void Main()
+ {
+ Console.WriteLine("\nCHECKED output value is: {0}",
+ CheckedMethod());
+ Console.WriteLine("UNCHECKED output value is: {0}",
+ UncheckedMethod());
+ }
+ /*
+ Output:
+ CHECKED and CAUGHT: System.OverflowException: Arithmetic operation resulted
+ in an overflow.
+ at ConsoleApplication1.OverFlowTest.CheckedMethod()
+
+ CHECKED output value is: 0
+ UNCHECKED output value is: -2147483639
+ */
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/class_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/class_1.cs
new file mode 100644
index 0000000000000..3c926b5622eae
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/class_1.cs
@@ -0,0 +1,50 @@
+ class Child
+ {
+ private int age;
+ private string name;
+
+ // Default constructor:
+ public Child()
+ {
+ name = "N/A";
+ }
+
+ // Constructor:
+ public Child(string name, int age)
+ {
+ this.name = name;
+ this.age = age;
+ }
+
+ // Printing method:
+ public void PrintChild()
+ {
+ Console.WriteLine("{0}, {1} years old.", name, age);
+ }
+ }
+
+ class StringTest
+ {
+ static void Main()
+ {
+ // Create objects by using the new operator:
+ Child child1 = new Child("Craig", 11);
+ Child child2 = new Child("Sally", 10);
+
+ // Create an object using the default constructor:
+ Child child3 = new Child();
+
+ // Display results:
+ Console.Write("Child #1: ");
+ child1.PrintChild();
+ Console.Write("Child #2: ");
+ child2.PrintChild();
+ Console.Write("Child #3: ");
+ child3.PrintChild();
+ }
+ }
+ /* Output:
+ Child #1: Craig, 11 years old.
+ Child #2: Sally, 10 years old.
+ Child #3: N/A, 0 years old.
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/const_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/const_1.cs
new file mode 100644
index 0000000000000..ad6d461570b94
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/const_1.cs
@@ -0,0 +1,28 @@
+ public class ConstTest
+ {
+ class SampleClass
+ {
+ public int x;
+ public int y;
+ public const int c1 = 5;
+ public const int c2 = c1 + 5;
+
+ public SampleClass(int p1, int p2)
+ {
+ x = p1;
+ y = p2;
+ }
+ }
+
+ static void Main()
+ {
+ SampleClass mC = new SampleClass(11, 22);
+ Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y);
+ Console.WriteLine("c1 = {0}, c2 = {1}",
+ SampleClass.c1, SampleClass.c2 );
+ }
+ }
+ /* Output
+ x = 11, y = 22
+ c1 = 5, c2 = 10
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/const_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/const_2.cs
new file mode 100644
index 0000000000000..0f604e912659a
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/const_2.cs
@@ -0,0 +1,9 @@
+ public class SealedTest
+ {
+ static void Main()
+ {
+ const int c = 707;
+ Console.WriteLine("My local constant = {0}", c);
+ }
+ }
+ // Output: My local constant = 707
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/continue_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/continue_1.cs
new file mode 100644
index 0000000000000..ce486ee7b2944
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/continue_1.cs
@@ -0,0 +1,24 @@
+
+ class ContinueTest
+ {
+ static void Main()
+ {
+ for (int i = 1; i <= 10; i++)
+ {
+ if (i < 9)
+ {
+ continue;
+ }
+ Console.WriteLine(i);
+ }
+
+ // Keep the console open in debug mode.
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+ }
+ /*
+ Output:
+ 9
+ 10
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/decimal_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/decimal_1.cs
new file mode 100644
index 0000000000000..c0ca269786ef4
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/decimal_1.cs
@@ -0,0 +1,10 @@
+ public class TestDecimal
+ {
+ static void Main()
+ {
+ decimal d = 9.1m;
+ int y = 3;
+ Console.WriteLine(d + y); // Result converted to decimal
+ }
+ }
+ // Output: 12.1
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/decimal_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/decimal_2.cs
new file mode 100644
index 0000000000000..2295b33c0d8cb
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/decimal_2.cs
@@ -0,0 +1,14 @@
+ public class TestDecimalFormat
+ {
+ static void Main()
+ {
+ decimal x = 0.999m;
+ decimal y = 9999999999999999999999999999m;
+ Console.WriteLine("My amount = {0:C}", x);
+ Console.WriteLine("Your amount = {0:C}", y);
+ }
+ }
+ /* Output:
+ My amount = $1.00
+ Your amount = $9,999,999,999,999,999,999,999,999,999.00
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/delegate_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/delegate_1.cs
new file mode 100644
index 0000000000000..2dc757aecfcf6
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/delegate_1.cs
@@ -0,0 +1,40 @@
+ // Declare delegate -- defines required signature:
+ delegate double MathAction(double num);
+
+ class DelegateTest
+ {
+ // Regular method that matches signature:
+ static double Double(double input)
+ {
+ return input * 2;
+ }
+
+ static void Main()
+ {
+ // Instantiate delegate with named method:
+ MathAction ma = Double;
+
+ // Invoke delegate ma:
+ double multByTwo = ma(4.5);
+ Console.WriteLine("multByTwo: {0}", multByTwo);
+
+ // Instantiate delegate with anonymous method:
+ MathAction ma2 = delegate(double input)
+ {
+ return input * input;
+ };
+
+ double square = ma2(5);
+ Console.WriteLine("square: {0}", square);
+
+ // Instantiate delegate with lambda expression
+ MathAction ma3 = s => s * s * s;
+ double cube = ma3(4.375);
+
+ Console.WriteLine("cube: {0}", cube);
+ }
+ // Output:
+ // multByTwo: 9
+ // square: 25
+ // cube: 83.740234375
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/descending_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/descending_1.cs
new file mode 100644
index 0000000000000..b6c927344a568
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/descending_1.cs
@@ -0,0 +1,4 @@
+ IEnumerable sortDescendingQuery =
+ from vegetable in vegetables
+ orderby vegetable descending
+ select vegetable;
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/do_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/do_1.cs
new file mode 100644
index 0000000000000..6c68c43ce822e
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/do_1.cs
@@ -0,0 +1,20 @@
+ public class TestDoWhile
+ {
+ public static void Main ()
+ {
+ int x = 0;
+ do
+ {
+ Console.WriteLine(x);
+ x++;
+ } while (x < 5);
+ }
+ }
+ /*
+ Output:
+ 0
+ 1
+ 2
+ 3
+ 4
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/double_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/double_1.cs
new file mode 100644
index 0000000000000..158df9070a049
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/double_1.cs
@@ -0,0 +1,14 @@
+ // Mixing types in expressions
+ class MixedTypes
+ {
+ static void Main()
+ {
+ int x = 3;
+ float y = 4.5f;
+ short z = 5;
+ double w = 1.7E+3;
+ // Result of the 2nd argument is a double:
+ Console.WriteLine("The sum is {0}", x + y + z + w);
+ }
+ }
+ // Output: The sum is 1712.5
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_1.cs
new file mode 100644
index 0000000000000..762882bcb3bdb
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_1.cs
@@ -0,0 +1,13 @@
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ dynamic dyn = 1;
+ object obj = 1;
+
+ // Rest the mouse pointer over dyn and obj to see their
+ // types at compile time.
+ System.Console.WriteLine(dyn.GetType());
+ System.Console.WriteLine(obj.GetType());
+ }
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_2.cs
new file mode 100644
index 0000000000000..114baaff3ba2f
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_2.cs
@@ -0,0 +1,25 @@
+ class ExampleClass
+ {
+ // A dynamic field.
+ static dynamic field;
+
+ // A dynamic property.
+ dynamic prop { get; set; }
+
+ // A dynamic return type and a dynamic parameter type.
+ public dynamic exampleMethod(dynamic d)
+ {
+ // A dynamic local variable.
+ dynamic local = "Local variable";
+ int two = 2;
+
+ if (d is int)
+ {
+ return local;
+ }
+ else
+ {
+ return two;
+ }
+ }
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_3.cs
new file mode 100644
index 0000000000000..5ae4d935db20b
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_3.cs
@@ -0,0 +1,20 @@
+ static void convertToDynamic()
+ {
+ dynamic d;
+ int i = 20;
+ d = (dynamic)i;
+ Console.WriteLine(d);
+
+ string s = "Example string.";
+ d = (dynamic)s;
+ Console.WriteLine(d);
+
+ DateTime dt = DateTime.Today;
+ d = (dynamic)dt;
+ Console.WriteLine(d);
+
+ }
+ // Results:
+ // 20
+ // Example string.
+ // 2/17/2009 9:12:00 AM
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_4.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_4.cs
new file mode 100644
index 0000000000000..667be6a64da73
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_4.cs
@@ -0,0 +1,15 @@
+ int i = 8;
+ dynamic d;
+ // With the is operator.
+ // The dynamic type behaves like object. The following
+ // expression returns true unless someVar has the value null.
+ if (someVar is dynamic) { }
+
+ // With the as operator.
+ d = i as dynamic;
+
+ // With typeof, as part of a constructed type.
+ Console.WriteLine(typeof(List));
+
+ // The following statement causes a compiler error.
+ //Console.WriteLine(typeof(dynamic));
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_5.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_5.cs
new file mode 100644
index 0000000000000..f80c618d0e4a7
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/dynamic_5.cs
@@ -0,0 +1,51 @@
+using System;
+
+namespace DynamicExamples
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ ExampleClass ec = new ExampleClass();
+ Console.WriteLine(ec.exampleMethod(10));
+ Console.WriteLine(ec.exampleMethod("value"));
+
+ // The following line causes a compiler error because exampleMethod
+ // takes only one argument.
+ //Console.WriteLine(ec.exampleMethod(10, 4));
+
+ dynamic dynamic_ec = new ExampleClass();
+ Console.WriteLine(dynamic_ec.exampleMethod(10));
+
+ // Because dynamic_ec is dynamic, the following call to exampleMethod
+ // with two arguments does not produce an error at compile time.
+ // However, itdoes cause a run-time error.
+ //Console.WriteLine(dynamic_ec.exampleMethod(10, 4));
+ }
+ }
+
+ class ExampleClass
+ {
+ static dynamic field;
+ dynamic prop { get; set; }
+
+ public dynamic exampleMethod(dynamic d)
+ {
+ dynamic local = "Local variable";
+ int two = 2;
+
+ if (d is int)
+ {
+ return local;
+ }
+ else
+ {
+ return two;
+ }
+ }
+ }
+}
+// Results:
+// Local variable
+// 2
+// Local variable
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/enum_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/enum_1.cs
new file mode 100644
index 0000000000000..0542ce0fb1c2d
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/enum_1.cs
@@ -0,0 +1,17 @@
+
+ public class EnumTest
+ {
+ enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
+
+ static void Main()
+ {
+ int x = (int)Days.Sun;
+ int y = (int)Days.Fri;
+ Console.WriteLine("Sun = {0}", x);
+ Console.WriteLine("Fri = {0}", y);
+ }
+ }
+ /* Output:
+ Sun = 0
+ Fri = 5
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/enum_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/enum_2.cs
new file mode 100644
index 0000000000000..fc145ef3865a2
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/enum_2.cs
@@ -0,0 +1,15 @@
+ public class EnumTest2
+ {
+ enum Range : long { Max = 2147483648L, Min = 255L };
+ static void Main()
+ {
+ long x = (long)Range.Max;
+ long y = (long)Range.Min;
+ Console.WriteLine("Max = {0}", x);
+ Console.WriteLine("Min = {0}", y);
+ }
+ }
+ /* Output:
+ Max = 2147483648
+ Min = 255
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/enum_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/enum_3.cs
new file mode 100644
index 0000000000000..677905612b0a8
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/enum_3.cs
@@ -0,0 +1,33 @@
+ // Add the attribute Flags or FlagsAttribute.
+ [Flags]
+ public enum CarOptions
+ {
+ // The flag for SunRoof is 0001.
+ SunRoof = 0x01,
+ // The flag for Spoiler is 0010.
+ Spoiler = 0x02,
+ // The flag for FogLights is 0100.
+ FogLights = 0x04,
+ // The flag for TintedWindows is 1000.
+ TintedWindows = 0x08,
+ }
+
+ class FlagTest
+ {
+ static void Main()
+ {
+ // The bitwise OR of 0001 and 0100 is 0101.
+ CarOptions options = CarOptions.SunRoof | CarOptions.FogLights;
+
+ // Because the Flags attribute is specified, Console.WriteLine displays
+ // the name of each enum element that corresponds to a flag that has
+ // the value 1 in variable options.
+ Console.WriteLine(options);
+ // The integer value of 0101 is 5.
+ Console.WriteLine((int)options);
+ }
+ }
+ /* Output:
+ SunRoof, FogLights
+ 5
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/equals_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/equals_1.cs
new file mode 100644
index 0000000000000..1c0998777fe95
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/equals_1.cs
@@ -0,0 +1,4 @@
+ var innerJoinQuery =
+ from category in categories
+ join prod in products on category.ID equals prod.CategoryID
+ select new { ProductName = prod.Name, Category = category.Name };
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/event_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/event_1.cs
new file mode 100644
index 0000000000000..e5dd31c609777
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/event_1.cs
@@ -0,0 +1,23 @@
+
+ public class SampleEventArgs
+ {
+ public SampleEventArgs(string s) { Text = s; }
+ public String Text {get; private set;} // readonly
+ }
+ public class Publisher
+ {
+ // Declare the delegate (if using non-generic pattern).
+ public delegate void SampleEventHandler(object sender, SampleEventArgs e);
+
+ // Declare the event.
+ public event SampleEventHandler SampleEvent;
+
+ // Wrap the event in a protected virtual method
+ // to enable derived classes to raise the event.
+ protected virtual void RaiseSampleEvent()
+ {
+ // Raise the event by using the () operator.
+ if (SampleEvent != null)
+ SampleEvent(this, new SampleEventArgs("Hello"));
+ }
+ }
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/explicit_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/explicit_1.cs
new file mode 100644
index 0000000000000..20b47c03eaab8
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/explicit_1.cs
@@ -0,0 +1,5 @@
+ // Must be defined inside a class called Fahrenheit:
+ public static explicit operator Celsius(Fahrenheit fahr)
+ {
+ return new Celsius((5.0f / 9.0f) * (fahr.degrees - 32));
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/explicit_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/explicit_2.cs
new file mode 100644
index 0000000000000..2e1a0f066f852
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/explicit_2.cs
@@ -0,0 +1,3 @@
+ Fahrenheit fahr = new Fahrenheit(100.0f);
+ Console.Write("{0} Fahrenheit", fahr.Degrees);
+ Celsius c = (Celsius)fahr;
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/explicit_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/explicit_3.cs
new file mode 100644
index 0000000000000..d882e87e5789d
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/explicit_3.cs
@@ -0,0 +1,51 @@
+
+ class Celsius
+ {
+ public Celsius(float temp)
+ {
+ degrees = temp;
+ }
+ public static explicit operator Fahrenheit(Celsius c)
+ {
+ return new Fahrenheit((9.0f / 5.0f) * c.degrees + 32);
+ }
+ public float Degrees
+ {
+ get { return degrees; }
+ }
+ private float degrees;
+ }
+
+ class Fahrenheit
+ {
+ public Fahrenheit(float temp)
+ {
+ degrees = temp;
+ }
+ // Must be defined inside a class called Fahrenheit:
+ public static explicit operator Celsius(Fahrenheit fahr)
+ {
+ return new Celsius((5.0f / 9.0f) * (fahr.degrees - 32));
+ }
+ public float Degrees
+ {
+ get { return degrees; }
+ }
+ private float degrees;
+ }
+
+ class MainClass
+ {
+ static void Main()
+ {
+ Fahrenheit fahr = new Fahrenheit(100.0f);
+ Console.Write("{0} Fahrenheit", fahr.Degrees);
+ Celsius c = (Celsius)fahr;
+
+ Console.Write(" = {0} Celsius", c.Degrees);
+ Fahrenheit fahr2 = (Fahrenheit)c;
+ Console.WriteLine(" = {0} Fahrenheit", fahr2.Degrees);
+ }
+ }
+ // Output:
+ // 100 Fahrenheit = 37.77778 Celsius = 100 Fahrenheit
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/explicit_4.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/explicit_4.cs
new file mode 100644
index 0000000000000..b7fd2fb8be384
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/explicit_4.cs
@@ -0,0 +1,40 @@
+ struct Digit
+ {
+ byte value;
+ public Digit(byte value)
+ {
+ if (value > 9)
+ {
+ throw new ArgumentException();
+ }
+ this.value = value;
+ }
+
+ // Define explicit byte-to-Digit conversion operator:
+ public static explicit operator Digit(byte b)
+ {
+ Digit d = new Digit(b);
+ Console.WriteLine("conversion occurred");
+ return d;
+ }
+ }
+
+ class ExplicitTest
+ {
+ static void Main()
+ {
+ try
+ {
+ byte b = 3;
+ Digit d = (Digit)b; // explicit conversion
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("{0} Exception caught.", e);
+ }
+ }
+ }
+ /*
+ Output:
+ conversion occurred
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/extern_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/extern_1.cs
new file mode 100644
index 0000000000000..4d130733c68ff
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/extern_1.cs
@@ -0,0 +1,15 @@
+ //using System.Runtime.InteropServices;
+ class ExternTest
+ {
+ [DllImport("User32.dll", CharSet=CharSet.Unicode)]
+ public static extern int MessageBox(IntPtr h, string m, string c, int type);
+
+ static int Main()
+ {
+ string myString;
+ Console.Write("Enter your message: ");
+ myString = Console.ReadLine();
+ return MessageBox((IntPtr)0, myString, "My Message Box", 0);
+ }
+
+ }
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/false-literal_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/false-literal_1.cs
new file mode 100644
index 0000000000000..d5081754f68dd
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/false-literal_1.cs
@@ -0,0 +1,10 @@
+
+ class TestClass
+ {
+ static void Main()
+ {
+ bool a = false;
+ Console.WriteLine( a ? "yes" : "no" );
+ }
+ }
+ // Output: no
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/false-operator_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/false-operator_1.cs
new file mode 100644
index 0000000000000..dcf15c2da45af
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/false-operator_1.cs
@@ -0,0 +1,93 @@
+ // For example purposes only. Use the built-in nullable bool
+ // type (bool?) whenever possible.
+ public struct DBBool
+ {
+ // The three possible DBBool values.
+ public static readonly DBBool Null = new DBBool(0);
+ public static readonly DBBool False = new DBBool(-1);
+ public static readonly DBBool True = new DBBool(1);
+ // Private field that stores –1, 0, 1 for False, Null, True.
+ sbyte value;
+ // Private instance constructor. The value parameter must be –1, 0, or 1.
+ DBBool(int value)
+ {
+ this.value = (sbyte)value;
+ }
+ // Properties to examine the value of a DBBool. Return true if this
+ // DBBool has the given value, false otherwise.
+ public bool IsNull { get { return value == 0; } }
+ public bool IsFalse { get { return value < 0; } }
+ public bool IsTrue { get { return value > 0; } }
+ // Implicit conversion from bool to DBBool. Maps true to DBBool.True and
+ // false to DBBool.False.
+ public static implicit operator DBBool(bool x)
+ {
+ return x ? True : False;
+ }
+ // Explicit conversion from DBBool to bool. Throws an exception if the
+ // given DBBool is Null; otherwise returns true or false.
+ public static explicit operator bool(DBBool x)
+ {
+ if (x.value == 0) throw new InvalidOperationException();
+ return x.value > 0;
+ }
+ // Equality operator. Returns Null if either operand is Null; otherwise
+ // returns True or False.
+ public static DBBool operator ==(DBBool x, DBBool y)
+ {
+ if (x.value == 0 || y.value == 0) return Null;
+ return x.value == y.value ? True : False;
+ }
+ // Inequality operator. Returns Null if either operand is Null; otherwise
+ // returns True or False.
+ public static DBBool operator !=(DBBool x, DBBool y)
+ {
+ if (x.value == 0 || y.value == 0) return Null;
+ return x.value != y.value ? True : False;
+ }
+ // Logical negation operator. Returns True if the operand is False, Null
+ // if the operand is Null, or False if the operand is True.
+ public static DBBool operator !(DBBool x)
+ {
+ return new DBBool(-x.value);
+ }
+ // Logical AND operator. Returns False if either operand is False,
+ // Null if either operand is Null, otherwise True.
+ public static DBBool operator &(DBBool x, DBBool y)
+ {
+ return new DBBool(x.value < y.value ? x.value : y.value);
+ }
+ // Logical OR operator. Returns True if either operand is True,
+ // Null if either operand is Null, otherwise False.
+ public static DBBool operator |(DBBool x, DBBool y)
+ {
+ return new DBBool(x.value > y.value ? x.value : y.value);
+ }
+ // Definitely true operator. Returns true if the operand is True, false
+ // otherwise.
+ public static bool operator true(DBBool x)
+ {
+ return x.value > 0;
+ }
+ // Definitely false operator. Returns true if the operand is False, false
+ // otherwise.
+ public static bool operator false(DBBool x)
+ {
+ return x.value < 0;
+ }
+ public override bool Equals(object obj)
+ {
+ if (!(obj is DBBool)) return false;
+ return value == ((DBBool)obj).value;
+ }
+ public override int GetHashCode()
+ {
+ return value;
+ }
+ public override string ToString()
+ {
+ if (value > 0) return "DBBool.True";
+ if (value < 0) return "DBBool.False";
+ return "DBBool.Null";
+ }
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/fixed-statement_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/fixed-statement_1.cs
new file mode 100644
index 0000000000000..dc385cbd529a4
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/fixed-statement_1.cs
@@ -0,0 +1,22 @@
+ unsafe static void TestMethod()
+ {
+
+ // Assume that the following class exists.
+ //class Point
+ //{
+ // public int x;
+ // public int y;
+ //}
+
+ // Variable pt is a managed variable, subject to garbage collection.
+ Point pt = new Point();
+
+ // Using fixed allows the address of pt members to be taken,
+ // and "pins" pt so that it is not relocated.
+
+ fixed (int* p = &pt.x)
+ {
+ *p = 1;
+ }
+
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/fixed-statement_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/fixed-statement_2.cs
new file mode 100644
index 0000000000000..23429f7885642
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/fixed-statement_2.cs
@@ -0,0 +1,33 @@
+ static unsafe void Test2()
+ {
+ Point point = new Point();
+ double[] arr = { 0, 1.5, 2.3, 3.4, 4.0, 5.9 };
+ string str = "Hello World";
+
+ // The following two assignments are equivalent. Each assigns the address
+ // of the first element in array arr to pointer p.
+
+ // You can initialize a pointer by using an array.
+ fixed (double* p = arr) { /*...*/ }
+
+ // You can initialize a pointer by using the address of a variable.
+ fixed (double* p = &arr[0]) { /*...*/ }
+
+ // The following assignment initializes p by using a string.
+ fixed (char* p = str) { /*...*/ }
+
+ // The following assignment is not valid, because str[0] is a char,
+ // which is a value, not a variable.
+ //fixed (char* p = &str[0]) { /*...*/ }
+
+
+ // You can initialize a pointer by using the address of a variable, such
+ // as point.x or arr[5].
+ fixed (int* p1 = &point.x)
+ {
+ fixed (double* p2 = &arr[5])
+ {
+ // Do something with p1 and p2.
+ }
+ }
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/fixed-statement_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/fixed-statement_3.cs
new file mode 100644
index 0000000000000..8d8702d26e362
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/fixed-statement_3.cs
@@ -0,0 +1,7 @@
+ fixed (int* p1 = &point.x)
+ {
+ fixed (double* p2 = &arr[5])
+ {
+ // Do something with p1 and p2.
+ }
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/fixed-statement_4.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/fixed-statement_4.cs
new file mode 100644
index 0000000000000..f5b73499a7517
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/fixed-statement_4.cs
@@ -0,0 +1,31 @@
+ class Point
+ {
+ public int x, y;
+ }
+
+ class FixedTest2
+ {
+ // Unsafe method: takes a pointer to an int.
+ unsafe static void SquarePtrParam (int* p)
+ {
+ *p *= *p;
+ }
+
+ unsafe static void Main()
+ {
+ Point pt = new Point();
+ pt.x = 5;
+ pt.y = 6;
+ // Pin pt in place:
+ fixed (int* p = &pt.x)
+ {
+ SquarePtrParam (p);
+ }
+ // pt now unpinned.
+ Console.WriteLine ("{0} {1}", pt.x, pt.y);
+ }
+ }
+ /*
+ Output:
+ 25 6
+ */
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/float_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/float_1.cs
new file mode 100644
index 0000000000000..cb6ab8e2a93da
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/float_1.cs
@@ -0,0 +1,17 @@
+ class FloatTest
+ {
+ static void Main()
+ {
+ int x = 3;
+ float y = 4.5f;
+ short z = 5;
+ var result = x * y / z;
+ Console.WriteLine("The result is {0}", result);
+ Type type = result.GetType();
+ Console.WriteLine("result is of type {0}", type.ToString());
+ }
+ }
+ /* Output:
+ The result is 2.7
+ result is of type System.Single //'float' is alias for 'Single'
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/for_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/for_1.cs
new file mode 100644
index 0000000000000..9190a365e58d5
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/for_1.cs
@@ -0,0 +1,19 @@
+
+ class ForLoopTest
+ {
+ static void Main()
+ {
+ for (int i = 1; i <= 5; i++)
+ {
+ Console.WriteLine(i);
+ }
+ }
+ }
+ /*
+ Output:
+ 1
+ 2
+ 3
+ 4
+ 5
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/for_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/for_2.cs
new file mode 100644
index 0000000000000..eaca6d8ca1948
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/for_2.cs
@@ -0,0 +1,16 @@
+ static void Main()
+ {
+ int i;
+ int j = 10;
+ for (i = 0, Console.WriteLine("Start: {0}",i); i < j; i++, j--, Console.WriteLine("i={0}, j={1}", i, j))
+ {
+ // Body of the loop.
+ }
+ }
+ // Output:
+ // Start: 0
+ // i=1, j=9
+ // i=2, j=8
+ // i=3, j=7
+ // i=4, j=6
+ // i=5, j=5
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/for_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/for_3.cs
new file mode 100644
index 0000000000000..1f599336a18c2
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/for_3.cs
@@ -0,0 +1,4 @@
+ for (; ; )
+ {
+ // ...
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/foreach-in_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/foreach-in_1.cs
new file mode 100644
index 0000000000000..23ca599971c91
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/foreach-in_1.cs
@@ -0,0 +1,58 @@
+class ForEachTest
+{
+ static void Main(string[] args)
+ {
+ int[] fibarray = new int[] { 0, 1, 1, 2, 3, 5, 8, 13 };
+ foreach (int element in fibarray)
+ {
+ System.Console.WriteLine(element);
+ }
+ System.Console.WriteLine();
+
+
+ // Compare the previous loop to a similar for loop.
+ for (int i = 0; i < fibarray.Length; i++)
+ {
+ System.Console.WriteLine(fibarray[i]);
+ }
+ System.Console.WriteLine();
+
+
+ // You can maintain a count of the elements in the collection.
+ int count = 0;
+ foreach (int element in fibarray)
+ {
+ count += 1;
+ System.Console.WriteLine("Element #{0}: {1}", count, element);
+ }
+ System.Console.WriteLine("Number of elements in the array: {0}", count);
+ }
+ // Output:
+ // 0
+ // 1
+ // 1
+ // 2
+ // 3
+ // 5
+ // 8
+ // 13
+
+ // 0
+ // 1
+ // 1
+ // 2
+ // 3
+ // 5
+ // 8
+ // 13
+
+ // Element #1: 0
+ // Element #2: 1
+ // Element #3: 1
+ // Element #4: 2
+ // Element #5: 3
+ // Element #6: 5
+ // Element #7: 8
+ // Element #8: 13
+ // Number of elements in the array: 8
+}
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/from-clause_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/from-clause_1.cs
new file mode 100644
index 0000000000000..89121aeeb3e28
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/from-clause_1.cs
@@ -0,0 +1,21 @@
+ class LowNums
+ {
+ static void Main()
+ {
+ // A simple data source.
+ int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+
+ // Create the query.
+ // lowNums is an IEnumerable
+ var lowNums = from num in numbers
+ where num < 5
+ select num;
+
+ // Execute the query.
+ foreach (int i in lowNums)
+ {
+ Console.Write(i + " ");
+ }
+ }
+ }
+ // Output: 4 1 3 2 0
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/from-clause_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/from-clause_2.cs
new file mode 100644
index 0000000000000..f6df5c1d1246a
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/from-clause_2.cs
@@ -0,0 +1,55 @@
+ class CompoundFrom
+ {
+ // The element type of the data source.
+ public class Student
+ {
+ public string LastName { get; set; }
+ public List Scores {get; set;}
+ }
+
+ static void Main()
+ {
+
+ // Use a collection initializer to create the data source. Note that
+ // each element in the list contains an inner sequence of scores.
+ List students = new List
+ {
+ new Student {LastName="Omelchenko", Scores= new List {97, 72, 81, 60}},
+ new Student {LastName="O'Donnell", Scores= new List {75, 84, 91, 39}},
+ new Student {LastName="Mortensen", Scores= new List {88, 94, 65, 85}},
+ new Student {LastName="Garcia", Scores= new List {97, 89, 85, 82}},
+ new Student {LastName="Beebe", Scores= new List {35, 72, 91, 70}}
+ };
+
+ // Use a compound from to access the inner sequence within each element.
+ // Note the similarity to a nested foreach statement.
+ var scoreQuery = from student in students
+ from score in student.Scores
+ where score > 90
+ select new { Last = student.LastName, score };
+
+ // Execute the queries.
+ Console.WriteLine("scoreQuery:");
+ // Rest the mouse pointer on scoreQuery in the following line to
+ // see its type. The type is IEnumerable<'a>, where 'a is an
+ // anonymous type defined as new {string Last, int score}. That is,
+ // each instance of this anonymous type has two members, a string
+ // (Last) and an int (score).
+ foreach (var student in scoreQuery)
+ {
+ Console.WriteLine("{0} Score: {1}", student.Last, student.score);
+ }
+
+ // Keep the console window open in debug mode.
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+ }
+ /*
+ scoreQuery:
+ Omelchenko Score: 97
+ O'Donnell Score: 91
+ Mortensen Score: 94
+ Garcia Score: 97
+ Beebe Score: 91
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/from-clause_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/from-clause_3.cs
new file mode 100644
index 0000000000000..ef2fda5615dd5
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/from-clause_3.cs
@@ -0,0 +1,64 @@
+ class CompoundFrom2
+ {
+ static void Main()
+ {
+ char[] upperCase = { 'A', 'B', 'C' };
+ char[] lowerCase = { 'x', 'y', 'z' };
+
+ // The type of joinQuery1 is IEnumerable<'a>, where 'a
+ // indicates an anonymous type. This anonymous type has two
+ // members, upper and lower, both of type char.
+ var joinQuery1 =
+ from upper in upperCase
+ from lower in lowerCase
+ select new { upper, lower };
+
+ // The type of joinQuery2 is IEnumerable<'a>, where 'a
+ // indicates an anonymous type. This anonymous type has two
+ // members, upper and lower, both of type char.
+ var joinQuery2 =
+ from lower in lowerCase
+ where lower != 'x'
+ from upper in upperCase
+ select new { lower, upper };
+
+
+ // Execute the queries.
+ Console.WriteLine("Cross join:");
+ // Rest the mouse pointer on joinQuery1 to verify its type.
+ foreach (var pair in joinQuery1)
+ {
+ Console.WriteLine("{0} is matched to {1}", pair.upper, pair.lower);
+ }
+
+ Console.WriteLine("Filtered non-equijoin:");
+ // Rest the mouse pointer over joinQuery2 to verify its type.
+ foreach (var pair in joinQuery2)
+ {
+ Console.WriteLine("{0} is matched to {1}", pair.lower, pair.upper);
+ }
+
+ // Keep the console window open in debug mode.
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+ }
+ /* Output:
+ Cross join:
+ A is matched to x
+ A is matched to y
+ A is matched to z
+ B is matched to x
+ B is matched to y
+ B is matched to z
+ C is matched to x
+ C is matched to y
+ C is matched to z
+ Filtered non-equijoin:
+ y is matched to A
+ y is matched to B
+ y is matched to C
+ z is matched to A
+ z is matched to B
+ z is matched to C
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/get_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/get_1.cs
new file mode 100644
index 0000000000000..04b37d5119565
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/get_1.cs
@@ -0,0 +1,11 @@
+ class TimePeriod
+ {
+ private double _seconds;
+ public double Seconds
+ {
+ get { return _seconds; }
+ set { _seconds = value; }
+ }
+
+
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/get_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/get_2.cs
new file mode 100644
index 0000000000000..b82cf35ca0546
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/get_2.cs
@@ -0,0 +1,4 @@
+ class TimePeriod2
+ {
+ public double Hours { get; set; }
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/global_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/global_1.cs
new file mode 100644
index 0000000000000..4d2cffff4b933
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/global_1.cs
@@ -0,0 +1 @@
+ class TestClass : global::TestApp { }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/goto_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/goto_1.cs
new file mode 100644
index 0000000000000..cda07e1616224
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/goto_1.cs
@@ -0,0 +1,44 @@
+ class SwitchTest
+ {
+ static void Main()
+ {
+ Console.WriteLine("Coffee sizes: 1=Small 2=Medium 3=Large");
+ Console.Write("Please enter your selection: ");
+ string s = Console.ReadLine();
+ int n = int.Parse(s);
+ int cost = 0;
+ switch (n)
+ {
+ case 1:
+ cost += 25;
+ break;
+ case 2:
+ cost += 25;
+ goto case 1;
+ case 3:
+ cost += 50;
+ goto case 1;
+ default:
+ Console.WriteLine("Invalid selection.");
+ break;
+ }
+ if (cost != 0)
+ {
+ Console.WriteLine("Please insert {0} cents.", cost);
+ }
+ Console.WriteLine("Thank you for your business.");
+
+ // Keep the console open in debug mode.
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+ }
+ /*
+ Sample Input: 2
+
+ Sample Output:
+ Coffee sizes: 1=Small 2=Medium 3=Large
+ Please enter your selection: 2
+ Please insert 50 cents.
+ Thank you for your business.
+ */
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/goto_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/goto_2.cs
new file mode 100644
index 0000000000000..7adb26ae14284
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/goto_2.cs
@@ -0,0 +1,55 @@
+ public class GotoTest1
+ {
+ static void Main()
+ {
+ int x = 200, y = 4;
+ int count = 0;
+ string[,] array = new string[x, y];
+
+ // Initialize the array:
+ for (int i = 0; i < x; i++)
+
+ for (int j = 0; j < y; j++)
+ array[i, j] = (++count).ToString();
+
+ // Read input:
+ Console.Write("Enter the number to search for: ");
+
+ // Input a string:
+ string myNumber = Console.ReadLine();
+
+ // Search:
+ for (int i = 0; i < x; i++)
+ {
+ for (int j = 0; j < y; j++)
+ {
+ if (array[i, j].Equals(myNumber))
+ {
+ goto Found;
+ }
+ }
+ }
+
+ Console.WriteLine("The number {0} was not found.", myNumber);
+ goto Finish;
+
+ Found:
+ Console.WriteLine("The number {0} is found.", myNumber);
+
+ Finish:
+ Console.WriteLine("End of search.");
+
+
+ // Keep the console open in debug mode.
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+ }
+ /*
+ Sample Input: 44
+
+ Sample Output
+ Enter the number to search for: 44
+ The number 44 is found.
+ End of search.
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_1.cs
new file mode 100644
index 0000000000000..d5ebbe99f96e1
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_1.cs
@@ -0,0 +1,4 @@
+ // Query variable is an IEnumerable>
+ var studentQuery1 =
+ from student in students
+ group student by student.Last[0];
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_2.cs
new file mode 100644
index 0000000000000..7e056ae8b2339
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_2.cs
@@ -0,0 +1,7 @@
+ // Group students by the first letter of their last name
+ // Query variable is an IEnumerable>
+ var studentQuery2 =
+ from student in students
+ group student by student.Last[0] into g
+ orderby g.Key
+ select g;
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_3.cs
new file mode 100644
index 0000000000000..6c19fa37e6c8d
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_3.cs
@@ -0,0 +1,12 @@
+ // Iterate group items with a nested foreach. This IGrouping encapsulates
+ // a sequence of Student objects, and a Key of type char.
+ // For convenience, var can also be used in the foreach statement.
+ foreach (IGrouping studentGroup in studentQuery2)
+ {
+ Console.WriteLine(studentGroup.Key);
+ // Explicit type for student could also be used here.
+ foreach (var student in studentGroup)
+ {
+ Console.WriteLine(" {0}, {1}", student.Last, student.First);
+ }
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_4.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_4.cs
new file mode 100644
index 0000000000000..bb588cfa629a3
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_4.cs
@@ -0,0 +1,5 @@
+ // Same as previous example except we use the entire last name as a key.
+ // Query variable is an IEnumerable>
+ var studentQuery3 =
+ from student in students
+ group student by student.Last;
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_5.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_5.cs
new file mode 100644
index 0000000000000..63a47d1897b2a
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_5.cs
@@ -0,0 +1,63 @@
+ class GroupSample1
+ {
+ // The element type of the data source.
+ public class Student
+ {
+ public string First { get; set; }
+ public string Last { get; set; }
+ public int ID { get; set; }
+ public List Scores;
+ }
+
+ public static List GetStudents()
+ {
+ // Use a collection initializer to create the data source. Note that each element
+ // in the list contains an inner sequence of scores.
+ List students = new List
+ {
+ new Student {First="Svetlana", Last="Omelchenko", ID=111, Scores= new List {97, 72, 81, 60}},
+ new Student {First="Claire", Last="O'Donnell", ID=112, Scores= new List {75, 84, 91, 39}},
+ new Student {First="Sven", Last="Mortensen", ID=113, Scores= new List {99, 89, 91, 95}},
+ new Student {First="Cesar", Last="Garcia", ID=114, Scores= new List {72, 81, 65, 84}},
+ new Student {First="Debra", Last="Garcia", ID=115, Scores= new List {97, 89, 85, 82}}
+ };
+
+ return students;
+
+ }
+
+ static void Main()
+ {
+ // Obtain the data source.
+ List students = GetStudents();
+
+ // Group by true or false.
+ // Query variable is an IEnumerable>
+ var booleanGroupQuery =
+ from student in students
+ group student by student.Scores.Average() >= 80; //pass or fail!
+
+ // Execute the query and access items in each group
+ foreach (var studentGroup in booleanGroupQuery)
+ {
+ Console.WriteLine(studentGroup.Key == true ? "High averages" : "Low averages");
+ foreach (var student in studentGroup)
+ {
+ Console.WriteLine(" {0}, {1}:{2}", student.Last, student.First, student.Scores.Average());
+ }
+ }
+
+ // Keep the console window open in debug mode.
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+ }
+ /* Output:
+ Low averages
+ Omelchenko, Svetlana:77.5
+ O'Donnell, Claire:72.25
+ Garcia, Cesar:75.5
+ High averages
+ Mortensen, Sven:93.5
+ Garcia, Debra:88.25
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_6.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_6.cs
new file mode 100644
index 0000000000000..611d0e91598f8
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_6.cs
@@ -0,0 +1,70 @@
+ class GroupSample2
+ {
+ // The element type of the data source.
+ public class Student
+ {
+ public string First { get; set; }
+ public string Last { get; set; }
+ public int ID { get; set; }
+ public List Scores;
+ }
+
+ public static List GetStudents()
+ {
+ // Use a collection initializer to create the data source. Note that each element
+ // in the list contains an inner sequence of scores.
+ List students = new List
+ {
+ new Student {First="Svetlana", Last="Omelchenko", ID=111, Scores= new List {97, 72, 81, 60}},
+ new Student {First="Claire", Last="O'Donnell", ID=112, Scores= new List {75, 84, 91, 39}},
+ new Student {First="Sven", Last="Mortensen", ID=113, Scores= new List {99, 89, 91, 95}},
+ new Student {First="Cesar", Last="Garcia", ID=114, Scores= new List {72, 81, 65, 84}},
+ new Student {First="Debra", Last="Garcia", ID=115, Scores= new List {97, 89, 85, 82}}
+ };
+
+ return students;
+
+ }
+
+ // This method groups students into percentile ranges based on their
+ // grade average. The Average method returns a double, so to produce a whole
+ // number it is necessary to cast to int before dividing by 10.
+ static void Main()
+ {
+ // Obtain the data source.
+ List students = GetStudents();
+
+ // Write the query.
+ var studentQuery =
+ from student in students
+ let avg = (int)student.Scores.Average()
+ group student by (avg == 0 ? 0 : avg / 10) into g
+ orderby g.Key
+ select g;
+
+ // Execute the query.
+ foreach (var studentGroup in studentQuery)
+ {
+ int temp = studentGroup.Key * 10;
+ Console.WriteLine("Students with an average between {0} and {1}", temp, temp + 10);
+ foreach (var student in studentGroup)
+ {
+ Console.WriteLine(" {0}, {1}:{2}", student.Last, student.First, student.Scores.Average());
+ }
+ }
+
+ // Keep the console window open in debug mode.
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+ }
+ /* Output:
+ Students with an average between 70 and 80
+ Omelchenko, Svetlana:77.5
+ O'Donnell, Claire:72.25
+ Garcia, Cesar:75.5
+ Students with an average between 80 and 90
+ Garcia, Debra:88.25
+ Students with an average between 90 and 100
+ Mortensen, Sven:93.5
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_7.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_7.cs
new file mode 100644
index 0000000000000..8d241ba813ecc
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_7.cs
@@ -0,0 +1,38 @@
+ class GroupExample1
+ {
+ static void Main()
+ {
+ // Create a data source.
+ string[] words = { "blueberry", "chimpanzee", "abacus", "banana", "apple", "cheese" };
+
+ // Create the query.
+ var wordGroups =
+ from w in words
+ group w by w[0];
+
+ // Execute the query.
+ foreach (var wordGroup in wordGroups)
+ {
+ Console.WriteLine("Words that start with the letter '{0}':", wordGroup.Key);
+ foreach (var word in wordGroup)
+ {
+ Console.WriteLine(word);
+ }
+ }
+
+ // Keep the console window open in debug mode
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+ }
+ /* Output:
+ Words that start with the letter 'b':
+ blueberry
+ banana
+ Words that start with the letter 'c':
+ chimpanzee
+ cheese
+ Words that start with the letter 'a':
+ abacus
+ apple
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_8.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_8.cs
new file mode 100644
index 0000000000000..eecc2a941dba8
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/group-clause_8.cs
@@ -0,0 +1,40 @@
+ class GroupClauseExample2
+ {
+ static void Main()
+ {
+ // Create the data source.
+ string[] words2 = { "blueberry", "chimpanzee", "abacus", "banana", "apple", "cheese", "elephant", "umbrella", "anteater" };
+
+ // Create the query.
+ var wordGroups2 =
+ from w in words2
+ group w by w[0] into grps
+ where (grps.Key == 'a' || grps.Key == 'e' || grps.Key == 'i'
+ || grps.Key == 'o' || grps.Key == 'u')
+ select grps;
+
+ // Execute the query.
+ foreach (var wordGroup in wordGroups2)
+ {
+ Console.WriteLine("Groups that start with a vowel: {0}", wordGroup.Key);
+ foreach (var word in wordGroup)
+ {
+ Console.WriteLine(" {0}", word);
+ }
+ }
+
+ // Keep the console window open in debug mode
+ Console.WriteLine("Press any key to exit.");
+ Console.ReadKey();
+ }
+ }
+ /* Output:
+ Groups that start with a vowel: a
+ abacus
+ apple
+ anteater
+ Groups that start with a vowel: e
+ elephant
+ Groups that start with a vowel: u
+ umbrella
+ */
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_1.cs
new file mode 100644
index 0000000000000..2d7cca1dc508b
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_1.cs
@@ -0,0 +1,10 @@
+ bool condition = true;
+
+ if (condition)
+ {
+ Console.WriteLine("The variable is set to true.");
+ }
+ else
+ {
+ Console.WriteLine("The variable is set to false.");
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_2.cs
new file mode 100644
index 0000000000000..cc1a8c3e83b0c
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_2.cs
@@ -0,0 +1,13 @@
+ // Try with m = 12 and then with m = 8.
+ int m = 12;
+ int n = 18;
+
+ if (m > 10)
+ if (n > 20)
+ {
+ Console.WriteLine("Result1");
+ }
+ else
+ {
+ Console.WriteLine("Result2");
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_3.cs
new file mode 100644
index 0000000000000..127e5656d150e
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_3.cs
@@ -0,0 +1,10 @@
+ // Try with m = 12 and then with m = 8.
+ if (m > 10)
+ {
+ if (n > 20)
+ Console.WriteLine("Result1");
+ }
+ else
+ {
+ Console.WriteLine("Result2");
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_4.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_4.cs
new file mode 100644
index 0000000000000..d694fddb143ad
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_4.cs
@@ -0,0 +1,28 @@
+ Console.Write("Enter a character: ");
+ char c = (char)Console.Read();
+ if (Char.IsLetter(c))
+ {
+ if (Char.IsLower(c))
+ {
+ Console.WriteLine("The character is lowercase.");
+ }
+ else
+ {
+ Console.WriteLine("The character is uppercase.");
+ }
+ }
+ else
+ {
+ Console.WriteLine("The character isn't an alphabetic character.");
+ }
+
+ //Sample Output:
+
+ //Enter a character: 2
+ //The character isn't an alphabetic character.
+
+ //Enter a character: A
+ //The character is uppercase.
+
+ //Enter a character: h
+ //The character is lowercase.
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_5.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_5.cs
new file mode 100644
index 0000000000000..ca12cf9fb0e4b
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_5.cs
@@ -0,0 +1,29 @@
+ // Change the values of these variables to test the results.
+ bool Condition1 = true;
+ bool Condition2 = true;
+ bool Condition3 = true;
+ bool Condition4 = true;
+
+ if (Condition1)
+ {
+ // Condition1 is true.
+ }
+ else if (Condition2)
+ {
+ // Condition1 is false and Condition2 is true.
+ }
+ else if (Condition3)
+ {
+ if (Condition4)
+ {
+ // Condition1 and Condition2 are false. Condition3 and Condition4 are true.
+ }
+ else
+ {
+ // Condition1, Condition2, and Condition4 are false. Condition3 is true.
+ }
+ }
+ else
+ {
+ // Condition1, Condition2, and Condition3 are false.
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_6.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_6.cs
new file mode 100644
index 0000000000000..27a5d9561e048
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/if-else_6.cs
@@ -0,0 +1,32 @@
+ Console.Write("Enter a character: ");
+ char ch = (char)Console.Read();
+
+ if (Char.IsUpper(ch))
+ {
+ Console.WriteLine("The character is an uppercase letter.");
+ }
+ else if (Char.IsLower(ch))
+ {
+ Console.WriteLine("The character is a lowercase letter.");
+ }
+ else if (Char.IsDigit(ch))
+ {
+ Console.WriteLine("The character is a number.");
+ }
+ else
+ {
+ Console.WriteLine("The character is not alphanumeric.");
+ }
+
+ //Sample Input and Output:
+ //Enter a character: E
+ //The character is an uppercase letter.
+
+ //Enter a character: e
+ //The character is a lowercase letter.
+
+ //Enter a character: 4
+ //The character is a number.
+
+ //Enter a character: =
+ //The character is not alphanumeric.
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/implicit_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/implicit_1.cs
new file mode 100644
index 0000000000000..80d979961ac5a
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/implicit_1.cs
@@ -0,0 +1,31 @@
+ class Digit
+ {
+ public Digit(double d) { val = d; }
+ public double val;
+ // ...other members
+
+ // User-defined conversion from Digit to double
+ public static implicit operator double(Digit d)
+ {
+ return d.val;
+ }
+ // User-defined conversion from double to Digit
+ public static implicit operator Digit(double d)
+ {
+ return new Digit(d);
+ }
+ }
+
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ Digit dig = new Digit(7);
+ //This call invokes the implicit "double" operator
+ double num = dig;
+ //This call invokes the implicit "Digit" operator
+ Digit dig2 = 12;
+ Console.WriteLine("num = {0} dig2 = {1}", num, dig2.val);
+ Console.ReadLine();
+ }
+ }
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/implicitly-typed-local-variables_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/implicitly-typed-local-variables_3.cs
new file mode 100644
index 0000000000000..bb588cfa629a3
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/implicitly-typed-local-variables_3.cs
@@ -0,0 +1,5 @@
+ // Same as previous example except we use the entire last name as a key.
+ // Query variable is an IEnumerable>
+ var studentQuery3 =
+ from student in students
+ group student by student.Last;
\ No newline at end of file
diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/in-generic-modifier_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/in-generic-modifier_1.cs
new file mode 100644
index 0000000000000..5242dae51d006
--- /dev/null
+++ b/docs/csharp/language-reference/keywords/codesnippet/CSharp/in-generic-modifier_1.cs
@@ -0,0 +1,21 @@
+ // Contravariant interface.
+ interface IContravariant { }
+
+ // Extending contravariant interface.
+ interface IExtContravariant : IContravariant { }
+
+ // Implementing contravariant interface.
+ class Sample : IContravariant { }
+
+ class Program
+ {
+ static void Test()
+ {
+ IContravariant