-
Notifications
You must be signed in to change notification settings - Fork 5.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Basic types, classes and structs #1134
Conversation
Cool! I'll give this a review this evening. |
I'm going to need to do another merge - I still had the Structs topic open so the latest changes didn't get in. |
Open Publishing Build Service: The pull request content has been published and here are some changed files links of this time:
Status: Succeeded. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. I made a few comments.
As stated previously, you can implicitly type a local variable (but not class members) by using the [var](https://msdn.microsoft.com/en-us/library/bb383973.aspx) keyword. The variable still receives a type at compile time, but the type is provided by the compiler. For more information, see [Implicitly typed local variables](https://msdn.microsoft.com/en-us/library/bb384061.aspx). | ||
|
||
In some cases, it is inconvenient to create a named type for simple sets of related values that you do not intend to store or pass outside method boundaries. You can create *anonymous types* for this purpose. For more information, see [Anonymous types](https://msdn.microsoft.com/en-us/library/bb397696.aspx). | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would this be a good place to reference tuple types?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good suggestion - done.
@@ -4,24 +4,80 @@ description: Learn about the core types (numerics, strings, and object) in all C | |||
keywords: .NET, .NET Core, C# | |||
author: dotnet-bot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You should change this to you.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@@ -4,24 +4,78 @@ description: Learn about the class types and how you create them | |||
keywords: .NET, .NET Core, C# | |||
author: dotnet-bot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you should change this to you.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
|
||
[!code-csharp[Declaring Classes](../../samples/snippets/csharp/concepts/classes/declaring-classes.cs)] | ||
|
||
The **class** keyword is preceded by the access level. Because [public](https://msdn.microsoft.com/en-us/library/yzh058ae.aspx) is used in this case, anyone can create objects from this class. The name of the class follows the **class** keyword. The remainder of the definition is the class body, where the behavior and data are defined. Fields, properties, methods, and events on a class are collectively referred to as *class members*. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
access level should be "access modifier".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
The **class** keyword is preceded by the access level. Because [public](https://msdn.microsoft.com/en-us/library/yzh058ae.aspx) is used in this case, anyone can create objects from this class. The name of the class follows the **class** keyword. The remainder of the definition is the class body, where the behavior and data are defined. Fields, properties, methods, and events on a class are collectively referred to as *class members*. | ||
|
||
## Creating objects | ||
Although they are sometimes used interchangeably, a class and an object are different things. A class defines a type of object, but it is not an object itself. An object is a concrete entity based on a class, and is sometimes referred to as an instance of a class. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would drop this first clause. class and object should not be used interchangeably.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed - I removed it.
@@ -12,16 +12,64 @@ ms.devlang: csharp | |||
ms.assetid: a7094b8c-7229-4b6f-82fc-824d0ea0ec40 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
author and date should change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
# Structs | ||
A struct is a value type. When a struct is created, the variable to which the struct is assigned holds the struct's actual data. When the struct is assigned to a new variable, it is copied. The new variable and the original variable therefore contain two separate copies of the same data. Changes made to one copy do not affect the other copy. | ||
|
||
Value types derive from @System.ValueType, which derives from @System.Object. Types that derive from @System.ValueType have special behavior in the CLR. Value type variables directly contain their values, which means that the memory is allocated inline in whatever context the variable is declared. There is no separate heap allocation or garbage collection overhead for value-type variables. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is misleading, in a way. It reads like you must define structs by deriving from System.ValueType. That's all implicit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
|
||
- A struct can implement interfaces. | ||
|
||
- A struct can be used as a nullable type and can be assigned a null value. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A nullable corresponding type can be built from any struct type. A struct can't b used as a nullable type.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
- A struct can be used as a nullable type and can be assigned a null value. | ||
|
||
## Literal values | ||
In C#, literal values receive a type from the compiler. You can specify how a numeric literal should be typed by appending a letter to the end of the number. For example, to specify that the value 4.56 should be treated as a float, append an "f" or "F" after the number: `4.56f`. If no letter is appended, the compiler will infer a type for the literal. For more information about which types can be specified with letter suffixes, see the reference pages for individual types in [Value Types](https://msdn.microsoft.com/en-us/library/s1ax56ch.aspx). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should probably say "the compiler will infer the double
type for the literal."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
|
||
var b = 0b1010_1011_1100_1110_1111; | ||
string s3 = "I can specify bit patterns: " + b.ToString(); | ||
// Outputs: "I can specify bit patterns: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should add the value here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left a few comments for you to address
|
||
After a variable is declared, it cannot be re-declared with a new type, and it cannot be assigned a value that is not compatible with its declared type. For example, you cannot declare an [int](https://msdn.microsoft.com/en-us/library/5kzh1b5w.aspx) and then assign it a Boolean value of [true](https://msdn.microsoft.com/en-us/library/06d3w013.aspx). However, values can be converted to other types, for example when they are assigned to new variables or passed as method arguments. A *type conversion* that does not cause data loss is performed automatically by the compiler. A conversion that might cause data loss requires a *cast* in the source code. | ||
|
||
For more information, see [Casting and type conversions](https://msdn.microsoft.com/en-us/library/ms173105.aspx) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: missing punctuation in the end
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
|
||
- It supports the principle of inheritance. Types can derive from other types, called *base types*. The derived type inherits (with some restrictions) the methods, properties, and other members of the base type. The base type can in turn derive from some other type, in which case the derived type inherits the members of both base types in its inheritance hierarchy. All types, including built-in numeric types such as @System.Int32 (C# keyword: `int`), derive ultimately from a single base type, which is @System.Object (C# keyword: `object`). This unified type hierarchy is called the [Common type system](../standard/common-type-system.md) (CTS). For more information about inheritance in C#, see [Inheritance](https://msdn.microsoft.com/en-us/library/ms173149.aspx). | ||
|
||
- Each type in the CTS is defined as either a *value type* or a *reference type*. This includes all custom types in the .NET Framework class library and also your own user-defined types. Types that you define by using the [struct](https://msdn.microsoft.com/en-us/library/ah19swz4.aspx) keyword are value types; all the built-in numeric types are **structs**. For more information about value types, see [Structs](structs.md).Types that you define by using the [class](https://msdn.microsoft.com/en-us/library/0b0thckt.aspx) keyword are reference types. For more information about reference types, see [Classes](classes.md). Reference types and value types have different compile-time rules, and different run-time behavior. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: Missing space before the sentence "Types that you define"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
|
||
[!code-csharp[Reference Types](../../samples/snippets/csharp/concepts/classes/reference-type.cs)] | ||
|
||
When the object is created, the memory is allocated on the managed heap, and the variable holds only a reference to the location of the object. Types on the managed heap require overhead both when they are allocated and when they are reclaimed by the automatic memory management functionality of the CLR, which is known as *garbage collection*. However, garbage collection is also highly optimized, and in most scenarios it does not create a performance issue. For more information about garbage collection, see [Automatic memory management and garbage collection](../Standard/garbagecollection/gc.md). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: missing comma in most scenarios
also: lowercase link (../standard/....)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
|
||
Unlike C++, a class in C# can only directly inherit from one base class. However, because a base class may itself inherit from another class, a class may indirectly inherit multiple base classes. Furthermore, a class can directly implement more than one interface. For more information, see [Interfaces](interfaces.md). | ||
|
||
A class can be declared [abstract](https://msdn.microsoft.com/en-us/library/sf985hc5.aspx). An abstract class contains abstract methods that have a signature definition but no implementation. Abstract classes cannot be instantiated. They can only be used through derived classes that implement the abstract methods. By constrast, a [sealed](https://msdn.microsoft.com/en-us/library/88c54tsw.aspx) class does not allow other classes to derive from it. For more information, see [Abstract and sealed classes and class members](https://msdn.microsoft.com/en-us/library/ms173150.aspx). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo: constrast
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
|
||
[!code-csharp[Assign Values](../../samples/snippets/csharp/concepts/structs/assign-value.cs)] | ||
|
||
Value types are *sealed*, which means, for example, that you cannot derive a type from @System.Int32, and you cannot define a struct to inherit from any user-defined class or struct because a struct can only inherit from @System.ValueType. However, a struct can implement one or more interfaces. You can cast a struct type to an interface type; this causes a *boxing* operation to wrap the struct inside a reference type object on the managed heap. Boxing operations occur when you pass a value type to a method that takes a @System.Object as an input parameter. For more information, see [Boxing and Unboxing](https://msdn.microsoft.com/en-us/library/yz2be5wk.aspx). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a Object -> an Object
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
|
||
Structs share most of the same syntax as classes, although structs are more limited than classes: | ||
|
||
- Within a struct declaration, fields cannot be initialized unless they are declared as const or static. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should const and static be formatted as inline code?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
|
||
- Structs are value types and classes are reference types. | ||
|
||
- Unlike classes, structs can be instantiated without using a **new** operator. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
keywords should be styled as inline code, not bold
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed. Btw, this and the next one are artifacts from the CAPS markdown conversion - they were styled as bold in the MSDN source.
|
||
- Structs can declare constructors that have parameters. | ||
|
||
- A struct cannot inherit from another struct or class, and it cannot be the base of a class. All structs inherit directly from **System.ValueType**, which inherits from **System.Object**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here. either link to the API in this case or style as inline code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
Person person1 = new Person(); | ||
Console.WriteLine(person1.name); | ||
|
||
person1.SetName("John Smith"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
there's a process to use names in content. are you aware of the process?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. This snippet came directly from the MSDN docs.
Open Publishing Build Service: The pull request content has been published and here are some changed files links of this time:
Status: Succeeded. |
Split Types topic and added C# 7 literala features
Open Publishing Build Service: The pull request content has been published and here are some changed files links of this time:
Status: Succeeded. |
after esolving conflict
Open Publishing Build Service: The pull request content has been published and here are some changed files links of this time:
Status: Succeeded. |
@BillWagner @mairaw I've addressed all comments and updated the TOC - should be good to go now. |
LGTM. |
* Basic types, classes and structs (dotnet#1134) * Basic types, classes and structs Split Types topic and added C# 7 literala features * Fixed snippet links * Fixed two more links * Addressed all review comments * Removed wrenches again after esolving conflict * simplify getting IP address (dotnet#1107) * Grammar error (dotnet#1145) I suppose that "to compile and the code" is wrong, it should be "to compile the code" * Don't rely on `docker exec` for getting ip address (dotnet#1108) * Update index.md (dotnet#1146) * adding some new links (dotnet#1139) * Patch 1 (dotnet#1147) * Update generating-fsharp-types-from-edmx.md Removed erroneous ) from the select statement in the example demonstrating a where clause * Update generating-fsharp-types-from-edmx.md Correcting the join statement in the example for joining two tables * Update generating-fsharp-types-from-edmx.md Under the section "Creating an EDMX file," adding the link to the "Configuring the Entity Data Model" section. * Update generating-fsharp-types-from-edmx.md Correcting indentation for the changeHireDate function * Fix title and metadata (dotnet#1149) * Reviewed the CLI topic (dotnet#1124) * Reviewed the CLI topic * added version * undoing a small change * Fix missing link Fix missing link for raw markdown template. * 🔧 small fixes (dotnet#1153) * Updates to the CLI commands reference (dotnet#1129) * reviewed cli commands topics * removed byline * minor fixes * fixed broken links * addressed feedback * clarified language * fixed typo * Feature/fsharp app service (dotnet#1156) * Add F# App Service API example * Add Hosting F# in a web application on Azure link * Update native dependencies section to specify RID correctly (dotnet#1144) * Update native dependencies section to specify RID correctly * Address feedback * Address @mairaw feedback I missed * adding new video (dotnet#1154) * Adding images for getting started VS Code doc * Fix <- in markdown (dotnet#1159) * Corrected typo * Added F# with Mobius for Spark on Azure (dotnet#1161) * Wrong place for image * Wrong place for image * Wrong place for image * Wrong place for image * fix broken link (dotnet#1166) * fix broken link * fixed another broken link * Fix Binary Search Tree insert function (dotnet#1167) * remove redundant "*" (dotnet#1168) * Update portability-analyzer.md (dotnet#1155) * Update portability-analyzer.md Made some improvements to the topic * updates * Update index.md (dotnet#1163) * Update index.md Fix links for dotnet-apiport. * Update index.md * adding macOS Sierra support (dotnet#1164) * adding sierra support * added missing word * Hello World with Visual Studio 2015 * Fix extension docs (dotnet#1178) See dotnet/fsharp#1670 * excluding tokens from ops validation (dotnet#1182) * renamed repo/fixed headings (dotnet#1186) * Corrected publishing warnings (dotnet#1189) * Corrected publishing warnings * Fixed two more broken links. * fixed broken link * Update README.md * Remove pointer to github.com/microsoft/docs/readme.md (dotnet#1191) * updated netstandard version (dotnet#1169) * fixed repo name (dotnet#1193) * added missing H1 (dotnet#1192) * Update toc.md * Updating languages used in sample article (dotnet#1199) * Methods topic ported from MSDN and revised. * Incorporated comments. * Corrected publishing errors * Added changes lost during merge. * Update toc.md * fixed broken anchors (dotnet#1194) * fixed broken anchors * fixed more links * fixed more links * fixed links * fixed more links * fixed casing * more fixes * more fixes * Update index.md * reverting to previous index structure. * fix broken-links for app-types document (dotnet#1203) * fix broken-links for app-types document Responding to a user comment on https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/using-wi th-xplat-cli * fix edit paste error of .md.md * fixing links again The index.md cannot be part of the url. The build removes ‘.md’, but keeps ‘index’. That fails. * fix typo in links * Propose VS Code Getting Started Getting started page for .NET Core, C# extension, and VS Code. * Deleted "Next Steps" Section Let's assume the surrounding documentation on the .NET Docs is where users will want to browse next. * Deleted Wrench, Added VS Code Install Step * Deleted "blazing" and "fun" * Add images * Fixed Pic links * Fixed old commits * fixing typo (dotnet#1202) * Update global-json.md (dotnet#996) * Update global-json.md * removing unkown properties * updated topic * Two edits, and modified TOC * Config tweak for PDF. * Change the format * respond to remaining feedback on 1077 Also, update the date and add the ms.author metadata. indent sample to preserve one list I’ll examine the build output on staging and then squash. * Update expressions.md Update expressions.md * Respond to feedback on PR dotnet#1076 Also, updated the publish date, and add ms.author metadata. * Formatting for the config. * Fix formatting console-teleprompter.md Update console-teleprompter.md Update console-teleprompter.md Update console-teleprompter.md * respond to remaining feedback on PR dotnet#1073 Also, updated the freshness date, and add the ms.author metadata tag. Respond to updated feedback Respond to @rpetrusha feedback. Fix a few broken links * clean up first sentence (dotnet#1214) * Recommend snippet syntax (dotnet#1209) * update template to recommend code snippets We prefer them to inline code that doesn’t run through the CI build. * Fix contributing link * update list of languages to the correct smaller set. * respond to feedback * respond to feedback. * Add link to and sample code application to post (dotnet#1215) * add link to and sample code application to post * remove unneeded files * Kick off live build again. * create initial contributing.md for fast releases. (dotnet#1206) * create initial contributing.md for fast releases. * fix markdown syntax issue. * fix the link to the main docs folder. * one more time, fixing the link. * add note about contributing.md location. * Add any contributing.md files to the exclude list We don’t want them on the live site. * stashing to switch branches. * update the link in the warning include. * update with correct current release terms. * Update for feedback. * new hub page design (dotnet#1220) * new hub page design * adding svg extension * 🐤 Config change. * fix typo (dotnet#1217) * November changes (dotnet#1157) * Updates for november release * Add getting-started to About .NET * Change links * Update to Platform as the name * fix links * Fix links in tour * Fix link * Update names * Update Framework Name * Remove About and replace with .NET Platform Guide * Fixes * Change .NET Framework to .NET Framework on Docker * Remove about article and make it the index * Update title in index file * Updates * Updates * fix link * fix link * fix link * Redirects don't support folder renames * fix links * Move files * feedback * fix link * Undo GUID change * Updates * fix broken link (dotnet#1222) * Adding MASTER to PDF build. * Hubpage (dotnet#1227) * testing image location * changing image links * fix more image links * Update attributed.md: Pre -> Previous (dotnet#1224) The button text only shows "Pre", which is different from the "Previous" button in other articles in this section. * Add git to prerequisites for getting started with F# on vscode article (dotnet#1180) * Add git to prerequisites * Update getting-started-vscode.md * Update getting-started-vscode.md * fixing some links (dotnet#1228) * Fix heading in F# vscode article (dotnet#1229) Was missing 'with'. * New in csharp7 (dotnet#1188) * Create What's new in C# 7 content * fix a merge mistake. * update per editorial feedback. * Fixing OPS build * address review comments. From @jaredpar * updates for the hub page * VS page conflict fix * testing hover image link * fixing link * updating Hub image urls * changed links * trying to fix build warnings * Spelling error (dotnet#1234) * 📚 migration changes (dotnet#1235) * migration files * checkin changes * more fixes * last fixes * fixed broken links * ran link fix tool again * Removed Wrench -- Issue dotnet#1213 * Removed wrench -- issue dotnet#1213 * Removed wrench -- Issue dotnet#1213 * The C# MicroServices tutorial left out an install of node.js's npm manager; added link to node.js. (dotnet#1219) * Updated the tutorial to help any user who is not coming from a javascript background who may not have npm installed; provided link to npm for their download * Grammar changes * Moved the instruction to install npm into its own paragraph and changed the logical structure of the instructions to follow. * Removed to be installed * fixing broken link (dotnet#1223) * fixing broken link * Update warning.md * Update index.md (dotnet#1151) add link to simple introduction to creating an azure function in f# on azure * updated featured png fallbacks, hiding breadcrumb (dotnet#1238) * updated featured png fallbacks, hiding breadcrumb * updated panel images * remove dead wood and market speak (dotnet#1183) * remove dead wood and market speak see https://msdnstage.redmond.corp.microsoft.com/en-us/ce-csi-docs/contributors-guide-internal/style-and-voice?branch=master For such a high visibility topic can't we run it by an editor? * removed Core * adding new CLI nuget commands (dotnet#1218) * adding new CLI nuget commands * small change * addressed feedback * last updates and renamed folder * Update CLI golden path tutorial for Preview 3. * macOS images (dotnet#1240) * Remove Syntax Reference and point to Language Reference (dotnet#1225) * Finish CLI golden path. * Fix missed project.json occurrences. * Move new preview3 docs under the cli-preview3 folder. * Add .NET Components article (dotnet#1232) * Add .NET Components article * Add to TOC and metadata fixes * Fix error in paragraph * More fixed * Reword awkward targeting sentence * Fix links * Better picture * Feedback * .NET Architectural components as the name name * Add .NET Platform getting started (dotnet#1241) * Add .NET Platform getting started * feedback * Feedback * Update hub page to have correct name and link for components (dotnet#1245) * Add Core vs Framework for server apps article (dotnet#1239) * Add Core vs Framework for server apps article * Feedback * Feedback * Feedback * Revised Tour of .NET (dotnet#1236) * First changes * Finish up draft of revised tour * Fix links * Fix links * Fix note * Feedback * Feedback * Feedback * Fix bad link * redirecting old topics (dotnet#1246) * readded files to proper redirect them * added missing toc entry * fixed redirect url * Update toc.md Removed top-level wrenches. * Initial draft of Hello World app. * Checkin for class library tutorial. * Consuming a class library check-in * Updated for final RC build (dotnet#2) * Updated for final RC build Updated screenshots, addressed accessibility, other minor changes * Updated library topics * Revised publishing topic, plus corrected typo * Corrected bad verb tense. * Addressed comment, added context and additional explanation, corrected title omission * Addressed additional comments * fix one build error. * fix the link URL for a code snippet * Update toc.md Updated TOC for new VS 2015 content, removed VS Code wrench and corrected title. * fixing TOC issue * Corrected bad links in VS 2017 RC topics. * Corrected title of library topic in TOC * top-level getting started portal page * Fix broken connect links (dotnet#1250) * fix a bad link * fix broken links these came in 3 cases. 1. Some links used ... instead of .. to navigate up a folder. 2. Some links were off by one directory up in navigation. 3. Some links used back-slash instead of slash. 4. Typos. 1 and 2 might be significant if we run the migration script again. * rename getting started with libraries and fix links The name had an '_ ' and should have '-' instead * fix build warnings * wrong API name: IsUpperCase -> IsUpper * Update hub links to actual content (dotnet#1251) * Update links to actual content * Add '/' * Corrected errors, added library topic, fixed typo in another topic * CLI Preview 3 docs (dotnet#1233) Add CLI Preview 3 documentation This will add Preview 3 CLI documentation in a separate folder under docs/core/preview3. The CLI Preview 3 bits are the first released bits to contain the MSbuild support and have no support for working with project.json projects. Changes done: * Modified the extensiblity document to add extending the tools via targets in NuGet packages * Added dependency management documetn that explains how to do package management manually in the new csproj format * Added csproj reference guide (NOTE: this needs completing) * Added dotnet-migrate command docs * Fixed all of the other command references to be correct as to Preview 3 bits * Add VS 2017 getting started topics. * Cleanup links and reconcile folder structure with other PRs. * Add TOC. * Updated warning (dotnet#1256) * Update warning.md * Update warning.md * fixed toc * fixing GH alias (dotnet#1260) * fixing GH alias /cc @bleroy I'm adding myself as the ms.author so I get the incoming feedback and so forth. let me know if you disagree with that. * fixing broken link * fixing toc links * fixed links and some typos (dotnet#1259) * fixed links and some typos * more fixes * Remove about .NET article (dotnet#1249) * Fix preview 3 download link. * Fixed merge conflict (dotnet#1265) Also fixed couple of typos. * Fix typo (dotnet#1267) * Update index.md (dotnet#1271) * Update index.md * Removing extra a * fixing broken links (dotnet#1263) * fixing broken links * more fixes * adding missing extension * Fixed links to preview 2 CLI code (dotnet#1274) * Fixed included notes (dotnet#1275) * Remove extraneous brackets * Fixes miscellaneous issues in VB content (dotnet#1268) Fixed broken links, removed invalid links, etc. * Preview 3 edits (dotnet#1273) * Preview 3 edits * Added migrate to the list of commands * Used docfx syntax for notes * Fixed heading levels in new articles * Made pseudo-variables in csproj consistent in dependencies * Remove references to project.json sections from deploying * Remove F# from dotnet new, since it's not supported * Added back missing --framework to dotnet test * Typos, grammar and other small fixes * Removed unnecessary Overview headings * fixed TOC (dotnet#1280) * fixed TOC * removed wrench * Fixing broken links (dotnet#1276) * Fixing broken links * Attempted to fix cross reference warning * Link to docs.ms instead of MSDN Also simplified relative paths * Absolute urls and other fixes (dotnet#1281) * absolute urls and other link fixes * fixed broken link * fixed issues causing formatting problems * removed extra parentheses * fixed broken link * fixed xref warnings * Added links to Visual Studio 2017 topics (dotnet#1282) * Revisions to lambda expressions topic. * Small syntax fixes YOu'll => You'll IgnoreDatamember => IgnoreDataMember * Fixed bad code snippet tags. * Minor TOC improvements * Addressed comments from @shoag * Additional revisions from Bill and Maira. * Create detailed article on C# tuples (dotnet#1284) * Create Tuples content in C# 7 content Outline and start on first draft. * finish tuples article and samples Ready for a final proofread * proofread, remove wrenches This is now ready for review. * respond to all feedback. Reviews from @svick and @rpetrusha * fixed typo (dotnet#1296) * clarify wording of "Functions as First-Class Values" (dotnet#1290) * custom operators using `?` (dotnet#1291) added an additional rule for custom operators from the F# 4.0 Spec Section 3.7 * added missing links (dotnet#1295) * added missing links * changed links to absolutely links Thanks @mairaw * fixed api links * update input file names for case sensitive file systems (dotnet#1299) Fixing a customer reported issue. * remove 'wrench' articles that have been ported (dotnet#1298) * remove 'wrench' articles that have been ported Several not-yet-written articles have been covered by the port of the C# content from MSDN. These still need to be reviewed and updated, but they are all now present. * configure redirects for deprecated articles. * don't include the file extension on redirects. * update the path for redirection * find and replace links to content that moved. * Add documented example of using a webjob in f# (dotnet#1289) * f# webjob doc and example * fix grammar * added new line * Updating WebApiClient (dotnet#1304) Adding missing `using` statements * Small fixes (dotnet#1303) * Added keywords metadata field. * added default values for api ref metadata (dotnet#1300) * added default values for api ref metadata * fixing path * changing to an alias * Adding Search Scope * Update docfx.json to add search scope * removing broken links (dotnet#1312) * Text, images, code for inheritance tutorial * Fixed bad code reference * Corrected another bad code snippet tag. * Metadata updates (dotnet#1313) * first round of metadata updates * secound round of updates * small update * Update debugging-with-visual-studio-2017.md Corrected spelling... * Add Debug section to VS Code Getting Started (dotnet#1314) * Add Debug instructions * Additional changes to inheritance in programming guide. * Fix broken sentence in discriminated-unions.md (dotnet#1322) * Updated LINQ topics for C# Concepts section (dotnet#1302) * Updated LINQ topics for C# Concepts section Phase one - additional topics will be moved from the Programming Guide later * Fixed build errors * Addressed feedback * Created a LINQ folder and moved the files; updated links * Updated TOC with new path * Updated redirect URLs * Fixed one more redirect * Use S110 build tool version for building (dotnet#1328) * Use 1.22.3 packages and plugin * Update .openpublishing.publish.config.json * Revisions to inheritance topic. * Addressed additional comments * turning off build comments on PRs (dotnet#1327) /cc @BillWagner * fixing tip (dotnet#1320) * fixed tip style * test * readded tip * content review * added missing changes * few more fixes * rezising asset image * addressed feedback * Fixed broken links to LINQ topic (dotnet#1331) * Fixed broken links to LINQ topic * fixed merge issues * Update .openpublishing.publish.config.json * rid-catalog.md: Add rhel.7-x64 rid (dotnet#1324) * make readable (dotnet#1325) * make readable * rpetrusha feedback * typo * Final corrections, corrected code snippet tag. * Updated TOC to add inheritance topic. * Changed wrong installation path in documentation. (dotnet#1323) * Corrected lowercase 'i' * Updated hub page images from Design (dotnet#1337) * dotnet#275 string interpolation tutorial for C# (dotnet#1317) * dotnet#275 string interpolation tutorial for C# * dotnet#275 move code examples into snippets so they can be run by DocFx * dotnet#275 corrects and fixes of string interpolation tutorial per review from BillWagner * dotnet#275 forgot namespace for CultureInfo * dotnet#275 typo fix * dotnet#275 remove intro header per recommendation * update metadata and TOC for tutorial (dotnet#1340) * update metadata and TOC for tutorial Also, add a reference to the inheritance tutorial (which was missing at the time) * Update string-interpolation.md * Removed incorrect semocolons from operators (dotnet#1338) * Fix code without right space. (dotnet#1342) Fix code without right space. * Add missing parenthesis (dotnet#1344) * Update how-to-define-value-equality-for-a-type.md spelling error * Update how-to-define-value-equality-for-a-type.md (dotnet#1349) public and non-public fields is the same thing as fields e.g., x || !x == true * corrected typo (dotnet#1352) * fixing warning message (dotnet#1353) * fixing warning message * re-added part of the sample * Update What's new for C# 7 (dotnet#1351) * Update What's new for C# 7 * re-word a few awkward sentences. * improve formatting. * respond to review comments. * Update F# XML documentation (dotnet#1357) Removed extraneous stars (bad formatting). * Fix date format to be mm/dd/yyyy (dotnet#1360) It was causing the wrong publication date. * fix typo in class name (dotnet#1361) As reported on PR dotnet#1351
Split Types topic and added C# 7 literals features