Microsoft Visual Studio 2012 | Code Tips Usman ur Rehman Ahmed Audience Marketing Manager (AMM), Microsoft Pakistan
Code Pointers NAMED REGIONS NAMED REGIONS DRAG & DROP CODE INTELLISENSE CTRL + SPACE QUICK LAUNCH Ctrl + Q PREVIEW TAB PREVIEW TAB SEARCH AND SYNC CODE CLONE ANALYSIS AUTO – IMPLEMENTED PROPERTIES GO TO DEFINITION CODE MAP CODE MAP SURROUND WITH
LINES OF CODE LINES OF CODE DISPLAY NUMER OF LINES ALL IN ONE CODE FRAMEWORK GO TO SPECIFIC LINE NUMBER PASCAL CASE TYPING METHOD NAMING METHOD CHAINING OFFLINE HELP OFFLINE HELP ALT + HIGHLIGHT COMMENT CODE BLOCK USE PHYSICAL KEYBOARD ON EMULATOR Equals(object); GetHashCode(); GetType(); ToString(); Equals(object); GetHashCode(); GetType(); ToString();
# region # endregion – lets you specify a block of code that you can expand or collapse – #region name – name is the name you want to give to the region – The region block must be terminated with a #endregion directive NAMED REGIONS NAMED REGIONS
Paste Code Blocks in Toolbox – You can reuse the code without having to type over and over again – Place it in a toolbox under one of the sections or create your own one – Drag and drop as required – It will now be available in all your projects DRAG & DROP CODE
Select a code block (highlight it) Drag and Drop to Toolbox (recommended: rename)
Ctrl Key – IntelliSense provides an array of options that make language references easily accessible. – Auto - suggestions – Hold down the Ctrl key to see through the code hidden behind the IntelliSense INTELLISENSE
CTRL + SPACE Display IntelliSense
QUICK LAUNCH Ctrl + Q Ctrl + Q Most Recently Open
Solution Explorer -> Preview Selected Items PREVIEW TAB PREVIEW TAB
Solutions Explorer -> Search & Sync – Enter keyword to Search for results within the project SEARCH AND SYNC – Sync Solutions Explorer to the currently active tab
Similar fragments of code – Separate fragments of code that are very similar – Find clones and refactor them – Find clones of a specific fragment or find all clones in your solution CODE CLONE ANALYSIS
Double Click a Clone Entry
Code Clones in Entire Solution – "Analyze solution for Code Clones" is only available in Ultimate and Premium editions of Visual Studio 2012
What is Found? Renamed Identifiers Insert and delete statements added Rearranged statements What is Not Found? Type declarations are not compared Analyze Solution for Code Clones will not find clones that are less than 10 statements long. However, you can apply Find matching clones in solution to shorter fragments InitializeComponent methods
PROP / PROPFULL – prop public string Name{get; set;} – propfull private string _Name; public string Name { get { return _Name; } set { _Name=value; } } AUTO – IMPLEMENTED PROPERTIES
GO TO DEFINITION
Seeing is Believing – Visualize Code – Point and click your way through complex code hierarchy CODE MAP CODE MAP
Ctrl + K,S SURROUND WITH
One Job for One Method – There should be only one job for one method – Ideally, seven to thirty lines of code in one method LINES OF CODE LINES OF CODE
Tools -> Options -> Text Editor -> All Languages -> Line Numbers DISPLAY NUMER OF LINES
Group related code together – Code related to one instance should be together – E.g. properties related to one TextBlock should be together ALL IN ONE CODE FRAMEWORK
Ctrl + g – Specify the line number – You will be jumped to that line automatically GO TO SPECIFIC LINE NUMBER
Pascal Case Methods – Type initials of every pascal case methods – E.g. BookAnotherFlight will be accessible by BAF PASCAL CASE TYPING
Noun-Verb Convention – Use verbs or verb cases to name methods – Verbs describe the action – Use Pascal Case RemoveAll() GetCharArray() GroupedItem() METHOD NAMING
Invoke Multiple Method Calls – Core concept behind it is to allow for better readability – Reduces the amount of code METHOD CHAINING
Offline Help Content – Help -> – Set Help Preferences -> – Launch in Help Viewer – Help -> View Help OFFLINE HELP OFFLINE HELP
Highlight text vertically ALT + HIGHLIGHT
Comment Chunks of Code – COMMENT: Ctrl + KC – UNCOMMENT: Ctrl + KU – /// COMMENT CODE BLOCK
Page up / page down Key USE PHYSICAL KEYBOARD ON EMULATOR
OBJECT Class – Ultimate base class of all classes, all classes derived from it (parent class of every other class) – Inheritance not required to be declared as it is implicit. – FOUR methods of OBJECT class available by default in a class’s object Equals(Object) – Determines whether the specified object is equal to the current object. GetHashCode() – Generates a number corresponding to the value of the object to support the use of a hash table. GetType() – Gets the Type of the current instance. ToString() – Returns a string that represents the current object. Equals(object); GetHashCode(); GetType(); ToString(); Equals(object); GetHashCode(); GetType(); ToString();