C#從零開始_自學C#、Visual Studio實境秀 48/ Visual Studio 秘訣和訣竅
{
{4:41 Visual Studio's most useful (and underused) tips http://bit.ly/2vCAhWr
45:00
5:33:30 SEARCH SOLUTION EXPLORER WITH CTRL+;
5:35:10 QUICK LAUNCH - CTRL+Q
5:49:00 TAB MANAGEMENT 頁籤管理
5:54:20 NAVIGATE TO - CTRL+, (CONTROL+COMMA)
Go To commands
6:01:00 You can move lines just by pressing Alt-up/down arrows.
can also Shift-Select a bunch of lines and then Alt-Arrow them around as a group.
}
52:10 VIDEO: Do you really know how to use Microsoft Word? The Power of Tabs and Indents{ http://bit.ly/2vCAhWr
1:02:55 1:18:00
}
C# Create Word Report from Excel using Template - Full version{ https://youtu.be/cb2YvsM83dQ
1:50:00 1:53:40 如何讓 C#與 Excel Word 溝通協作
2:01:00 get_Item(0);//寫成 [0] 不就成了?
get_Item
ExtendedProperties.get_Item Method 有擴充方法,還有擴充屬性哩! http://bit.ly/2uqc71D
ExtendedProperties.get_Item Method 還是一個方法嘛
3:01:20 get_Range data[0] = xlWorkSheet.get_Range("a" + index.ToString()).Value.tostring();
如這裡的 tostring() 大概係 object 可以被 override 的方法,因為 object 是所有類別的基底,所以到處皆可用。但這裡可能有問題!
3:24:00 Type.Missing:選擇性參數在有逗點(,)的範圍內是不能省略的,但可以用 Type.Missing 來「省略」。
{ 4:00:00
using System;
using System.Windows.Forms;
using excel = Microsoft.Office.Interop.Excel;
using static System.Runtime.InteropServices.Marshal;
excel::Application xlApp = new excel::Application();
excel::Workbook xlWorkBook = xlApp.Workbooks.Open(res, 0, true, 5, "", "", true);
excel::Worksheet xlWorkSheet=xlWorkBook.Worksheets[1];
xlWorkSheet = (excel::Worksheet)xlWorkBook.Worksheets.get_Item(1);
}
}
用 UWP 做的 {
using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
// 空白頁項目範本已記錄在 https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x404
namespace App1
{
/// <summary>
/// 可以在本身使用或巡覽至框架內的空白頁面。
/// </summary>
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
private async void Button_ClickAsync(object sender, RoutedEventArgs e)
{播放聲音、語音,有此類別可用:Windows.UI.Xaml.Controls.MediaElement、Windows.Media.SpeechSynthesis
MediaElement mediaElement = new MediaElement();
var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();
Windows.Media.SpeechSynthesis.SpeechSynthesisStream stream = await synth.SynthesizeTextToStreamAsync("Namo Amitabha!");//將文字轉成語音
mediaElement.SetSource(stream, stream.ContentType);
mediaElement.Play();
}
}
}
}
3:49:00 可以將GitHub中有用的原始碼運用在自己的專案裡: 南無阿彌陀佛 if you are looking for great code to use in your project you can find it on GitHub.
4:06:26 repos 目錄名稱應是 repository 的縮寫。是 repo 的複數型,如 Create a new Git repo http://bit.ly/2uv8nrr Visual Studio and GitHub
A Git repository, or repo, is a folder that you’ve told Git to help you track file changes in. You can have any number of repos on your computer, each stored in their own folder. Each Git repo on your system is independent, so changes saved in one Git repo don’t affect the contents of another.
4:29:20 Word VBA { Word 中的文字處理、篩選
Attribute VB_Name = "WordsFilter"
Option Explicit
Sub 段落中包含指定字串()
Dim FilterdWords(), d As Document, p As Paragraph, i As Long
Static pIndex As Long
FilterdWords = Array("github", "visual studio") '手動輸入篩選條件,不能超過 Byte 上限
Set d = ActiveDocument
For Each p In d.Paragraphs
i = i + 1
If i > pIndex Then
If FilterCriteriaAnd(FilterdWords, p) Then
p.Range.Select
pIndex = i
Exit Sub
End If
End If
Next
MsgBox "找完了!", vbInformation
End Sub
Function FilterCriteriaAnd(Strs(), p As Paragraph) As Boolean
Dim uB As Byte, i As Byte
uB = UBound(Strs())
For i = 0 To uB
If InStr(1, p.Range, Strs(i), vbTextCompare) > 0 Then
FilterCriteriaAnd = True
Else
FilterCriteriaAnd = False
Exit Function
End If
Next
End Function
}
6:14:00 Visual Studio Tips and Tricks http://bit.ly/2hQ94Kf
6:27:30 使用 Visual Studio 提高產能的秘訣 {http://bit.ly/2vG7GzS
如需常用鍵盤快速鍵的詳細資訊,請參閱秘訣和訣竅。 如需更完整的清單,請參閱識別及自訂鍵盤快速鍵和預設鍵盤快速鍵。
6:40:00 不小心關了啟動時效能提示訊息為永遠不顯示了
6:42:00 撰寫程式碼
您可以使用下列功能,更快速地撰寫程式碼。
使用範例應用程式。 您可以從 MSDN Code Gallery 下載和安裝範例應用程式,來加速應用程式開發。 您也可以下載和探索該區域的範例套件,學習特定技術或程式設計概念。
https://code.msdn.microsoft.com
6:45:10 使用 IntelliSense{ http://bit.ly/2vKN3SK
6:48:00 選取項目之後,您可以按 TAB 鍵或輸入空格,將它插入程式碼中。
或按 Enter 鍵也行
快速諮詢 Quick Info
在成員清單中,左方的圖示代表成員的類型,如命名空間、類別、函式或變數。 如需圖示的清單,請參閱類別檢視和物件瀏覽器圖示。
圖示自己之前有摸索過了:
類別檢視和物件瀏覽器圖示{http://bit.ly/2voyNy6 Class View and Object Browser Icons
6:55:00 欄位或變數 所以二者何故常混同
信號圖示 Signal Icons 以下信號圖示適用所有先前的圖示並指出它們的存取範圍。
6:58:00 檢視程式碼的結構 { http://bit.ly/2uM6So9 Viewing the Structure of Code
您也可以使用方案總管來瀏覽專案中的類型與成員、搜尋符號、檢視方法的呼叫階層、尋找符號參考及更多功能,而不需要在如上所述的多個工具視窗之間切換。
如果您有 Visual Studio Enterprise,即可使用 Code Map 以視覺方式呈現程式碼的結構,而其相依性適用於整個方案,且能夠向下鑽研至您感興趣的程式碼部分。 如需詳細資訊,請參閱對應方案之間的相依性。
7:02:00 類別檢視 Class View
By using this window, you can move to member definitions in the source code (or in the Object Browser if the element is defined outside your solution).
7:10:00 您不需要編譯專案,即可在 [類別檢視] 中檢視其項目。 當您修改專案中的程式碼時,視窗會重新整理。
If your project is checked in to source code control, every Class View element displays an icon that indicates the source code status of the file. Common source code control commands such as Check Out, Check In, and Get Latest Version are also available on the shortcut menu for the element.
7:20:00 類別檢視工具列包含下列命令。
建立虛擬資料夾或子資料夾,您可以在其中整理經常使用的項目。 這些項目儲存在作用中的方案 (.suo) 檔案內。 重新命名或刪除程式碼中的項目之後,其可能會以錯誤節點的方式出現在虛擬資料夾中。 若要修正此問題,請刪除該錯誤節點。 如果您重新命名項目,則可將其再一次從專案階層移動到資料夾內。
檢視呼叫階層 在 [呼叫階層] 視窗中顯示所選方法。
View Call Hierarchy Displays the selected method in the Call Hierarchy window.
呼叫階層 Call Hierarchy
[呼叫階層] 視窗會顯示從何處呼叫指定的方法 (或是屬性或建構函式),並列出來自該方法所呼叫的方法。
[呼叫站台] 窗格則會顯示所選呼叫的位置。 實際是「呼叫位置」
the Call Sites pane displays the location of the selected call.
若是虛擬或抽象成員,會出現 [覆寫方法名稱] 節點。 若是介面成員,會出現 [實作方法名稱] 節點。
[呼叫階層] 視窗找不到方法群組參考,其中包含會作為事件處理常式或指派至委派位置的方法。 若要尋找這些參考,請使用 [尋找所有參考] 命令。
The Call Hierarchy window does not find method group references, which include places where a method is added as an event handler or is assigned to a delegate. To find these references, use the Find All References command.
物件瀏覽器 Object Browser
您可以使用視窗頂端的 [搜尋] 方塊,搜尋特定項目。 搜尋不區分大小寫。 搜尋結果會顯示在左窗格中。
加入參考可以在物件瀏覽器中執行:您可以使用 [物件瀏覽器] 將組件參考新增至開啟的方案中,方法是選取項目 (組件、命名空間、類型或成員),然後選擇工具列上的 [新增參考] 按鈕。
7:47:39 程式碼定義視窗 Code Definition Window
建立單元測試 建立所選項目的單元測試。
7:52:40 文件大綱視窗 Document Outline Window
}
}
6:52:00 列出成員 List Members 在空白行或可辨識範圍外叫用清單時,清單會顯示全域命名空間中的符號。
7:56:10 CTRL+J
7:58:00 您也可以變更為建議模式,在此模式中只會將您輸入的文字插入程式碼。 例如,如果您輸入不在清單中的識別碼並按下 TAB 鍵,則在完成模式中的項目會取代所輸入的識別碼。 若要在完成模式和建議模式間進行切換,按下 CTRL+ALT+空格鍵,或按一下 [編輯]\/[IntelliSense]\/[切換完成模式]。
這裡「識別碼」即 identifier 要翻成 識別項(識別字)才是!
8:02:40 參數資訊 Parameter Info
對於多載函式,您可以使用向上鍵和向下鍵檢視函式多載的替代參數資訊。
8:05:00 當您以 XML 文件註解來附註函式和參數時,這些註解將會顯示成 [參數資訊]。 如需詳細資訊,請參閱提供 XML 程式碼註解。
提供 XML 程式碼註解{ 8:05:30 http://bit.ly/2vL2I4c
您可以將原始程式碼檔中的註解當成 IntelliSense 使用。 將 /doc 參數新增至 Visual Basic、C# 或 C++ 編譯器命令列時,會產生當成 IntelliSense 文件基礎的 .xml 檔案。
XML 文件註解 (C# 程式設計手冊){http://bit.ly/2fwMBky
在 Visual C# 中,您可以加入程式碼的文件,加入的方法是在原始程式碼中,於註解所參考程式碼區塊之前的特殊註解欄位 (以三個斜線表示) 中加入 XML 項目,例如:
/// <summary>
/// This class performs an important function.
/// </summary>
public class MyClass{}
當您使用 /doc 選項編譯時,編譯器將會搜尋原始程式碼中的所有 XML 標記,然後建立 XML 文件檔。 若要依據編譯器產生的檔案來建立最終文件,您可以建立自訂工具,或者是使用 Sandcastle 這類工具。
所以三個斜線是表示針對以下程式碼區塊的指定註解
}
}
8:13:00 您可以按一下 [編輯]\/[IntelliSense]\/[參數資訊],輸入 CTRL+SHIFT+空格鍵,或按一下編輯器工具列上的 [參數資訊] 按鈕,手動叫用參數資訊。
應該是 Ctrl+Shift+I 且是在「文字編輯器」的工具列上才有,「標準」工具列是沒有的
快速諮詢 Quick Info
如果函式是多載函式,IntelliSense 可能不會顯示所有多載形式的資訊。
可是可以利用 參數資訊 來查看
8:23:30 自動完成文字 Complete Word
是 Alt+向右鍵 不是 CTRL+空格鍵(此乃「預設」值,我所用的乃 Visual Basic 6 的鍵盤配置)
8:26:00 IntelliSense 選項
如果游標上方的程式碼有不完整的函式或其他錯誤,您可能會無法使用 IntelliSense,因為 IntelliSense 可能無法剖析程式碼項目。
如果游標如下列範例所示位於用引號括住的字串常值中,則無法使用 IntelliSense
Visual C# IntelliSense { 8:30:10 http://bit.ly/2vUBOaE
[即時模式] 即時運算視窗 {http://bit.ly/2uwr0Ly
8:31:30 8:34:10 Immediate Window
您可以使用這個視窗發出個別的 Visual Studio 命令。 可用的命令包括 EvaluateStatement,它可用來指派值給變數。 [即時運算] 視窗也支援 IntelliSense。
若要檢查 varA 變數的值,可使用列印命令:
>Debug.Print varA
問號 (?) 是 Debug.Print 的別名,因此這個命令也可以寫成:
>? varA
8:41:10 若要在 [即時運算] 視窗中發出 Visual Studio 命令,必須在命令前面加上大於符號 (>)。 若要輸入多個命令,請切換至 [命令] 視窗。
您可以在設計階段使用 [即時運算] 視窗來執行函式或副程式(subroutine 子程序)。
如果函式或副程式含有中斷點,Visual Studio 會在適當的點中斷執行。 然後,您就可以使用偵錯工具視窗來檢查程式的狀態。 如需詳細資訊,請參閱逐步解說:在設計階段進行偵錯。 Walkthrough: Debugging at Design Time{ http://bit.ly/2vsDSni
You can use the Visual Studio Immediate window to execute a function or subroutine while your application is not running. If the function or subroutine contains a breakpoint, Visual Studio will break execution at the appropriate point. You can then use the debugger windows to examine your program state. This feature is called debugging at design time.
call stack 呼叫堆疊
}
9:16:00 您無法在必須啟動執行環境的專案類型中使用設計階段運算式評估,這些專案類型包括 Visual Studio Tools for Office 專案、Web 專案、智慧型裝置專案和 SQL 專案。
設計階段運算式評估一定要在啟始專案中作才行,否則要選取待評估之專案:
多專案方案中的設計階段運算式評估 為設計階段運算式評估建立內容時,Visual Studio 會參考 [方案總管] 中目前選取的專案。 如果 [方案總管] 中未選取任何專案,Visual Studio 會嘗試針對啟始專案評估函式。 如果無法在目前內容中評估函式,就會出現錯誤訊息。 如果您試圖評估的函式不是在方案的啟始專案中,而且發生錯誤,請嘗試在 [方案總管] 中選取專案,然後再重新評估一次。
9:18:30 輸入命令
在 [即時運算] 視窗中發出 Visual Studio 命令時,必須輸入大於符號 (>)。 使用向上鍵 (UP ARROW) 和向下鍵 (DOWN ARROW) 即可捲動到之前發出的命令。
切換至 [命令] 視窗。 >cmd
切換回 [即時運算] 視窗。 immed
9:22:30 標記模式 Mark Mode
當您在 [即時運算] 視窗中按一下之前任一行時,會自動切換至 [標記] 模式。 如此可讓您以在任何文字編輯器中執行的方式,選取、編輯和複製之前命令的文字,並且在目前這行中貼上它們。
9:24:20 等號 (=) The Equals (=) Sign
The window used to enter the EvaluateStatement command determines whether an equals sign (=) is interpreted as a comparison operator or as an assignment operator.
>Debug.EvaluateStatement(varA=varB)
}
9:35:00 完成清單 Completion Lists
完成清單中的程式碼片段
Visual C# 完成清單包含程式碼片段,可以協助您在程式中輕鬆地插入預先定義的程式碼主體。 在完成清單中,程式碼片段會顯示為片段的 Shortcut 項目 (IntelliSense 程式碼片段)。 如需 Visual C# 中所提供之預設程式碼片段的詳細資訊,請參閱 Visual C# 程式碼片段。 http://bit.ly/2vsqHTn
9:46:30 enums cannot be used for base classes.
enums 列舉
9:45:30 new 關鍵字:當您鍵入 new 然後按下空格鍵,完成清單隨即出現。 清單會根據您的程式碼內容,自動選取一個項目。 例如,完成清單中的項目會針對宣告及方法中的 return 陳述式自動選取項目。
9:47:30 as 及 is 運算子:當您鍵入 as 或 is 關鍵字後按空格鍵,即會自動顯示篩選後的完成清單。
9:48:20 Event:當您輸入關鍵字 event,完成清單僅包含委派類型。
When you type the keyword event, the completion list only contains delegate types.
9:49:00 參數會自動排序到符合您所輸入之參數的第一個方法多載。 如有多個方法多載,您可以使用向上鍵與向下鍵巡覽至清單中下一個可能的多載。
IntelliSense 會記住您最近在 [列出成員] 快顯方塊中選取的成員,自動完成物件名稱。 下次使用 [成員] 清單時,最近使用過的成員就會顯示在頂端。 IDE 會在每個工作階段之間,清除最近使用過的成員記錄。
當您鍵入 override,然後按下空格鍵時,IntelliSense 即會在快顯清單方塊中顯示所有您可以覆寫的有效基底類別成員。
在 override 之後輸入方法的傳回類型,可提示 IntelliSense 僅顯示會傳回相同類型的方法。 當 IntelliSense 找不到任何相符項目時,它會顯示所有基底類別成員。
9:51:30 自動產生程式碼 Automatic Code Generation
9:54:30 組合管理 Using Organize usings 即可以精簡程式碼
The Organize Usings options sort and remove using and extern declarations
若要查看 Visual Studio IDE 中的可用選項,請在 [編輯] 功能表上,指向 [IntelliSense],然後指向 [組合管理 Using]。 IDE 提供下列選項來組合管理和移除 usings 指示詞:
實作介面 Implement Interface
在程式碼編輯器中工作時,IntelliSense 可提供協助您實作介面的選項。 一般來說,若要正確地實作介面,必須為類別中介面的每位成員建立方法宣告。 使用 IntelliSense 會在您於類別宣告中輸入介面名稱後,顯示智慧標籤。 您可利用智慧標籤,選擇要使用明確或隱含命名的方式進行自動實作介面。 在明確命名的情況下,方法宣告會使用介面的名稱; 而在隱含命名的情況下,方法宣告則不會指出其所屬的介面。 明確命名的介面方法只可透過介面執行個體而不是透過類別執行個體加以存取。 如需詳細資訊,請參閱明確介面實作。
An explicitly named interface method can only be accessed through an interface instance, and not through a class instance. For more information, see Explicit Interface Implementation.
虛設常式 stubs
所以一個類別可以只實作介面的部分成員?又可以不概括承受? 只因為不在宣告時寫明某一介面嗎?
If a base class implements parts of the interface
10:08:20 實作抽象基底類別 Implement abstract base class
在使用 [程式碼編輯器] 時,IntelliSense 提供您可自動實作抽象基底類別成員的選項。
一般而言,實作抽象基底類別的成員需要針對衍生類別中抽象基底類別的每個方法建立新的方法定義。 使用 IntelliSense,在類別宣告中輸入抽象基底類別的名稱後,就會顯示智慧標籤。 智慧標籤提供您自動實作基底類別方法的選項。
方法虛設常式 method stubs
[實作抽象基底類別] 功能所產生的方法虛設常式是由定義在 MethodStub.snippet 檔案中的程式碼片段所模式化。 程式碼片段是可以修改的。 如需詳細資訊,請參閱逐步解說:建立程式碼片段。 http://bit.ly/2vsYvzN
使用時產生 smart tag (an icon)
10:18:40 智慧標籤 (圖示) smart tag (an icon) 應該就是 燈泡!
可以幫您自動完成定義,而不用自己寫
Generate from usage{
The Generate From Usage feature enables you to use classes and members before you define them. You can generate a stub for any class, constructor, method, property, field, or enum that you want to use but have not yet defined. You can generate new types and members without leaving your current location in code. This minimizes interruption to your workflow.
A wavy underline appears under each undefined identifier. When you rest the mouse pointer on the identifier, an error message appears in a tooltip.
To display the appropriate options, you can use one of the following procedures:
Click the undefined identifier. A short underline appears under the leftmost character. Rest the mouse pointer on the short underline, and a smart tag (an icon) appears. Click the smart tag.
Click the undefined identifier, and then press CTRL+. (period).
Right-click the undefined identifier, and then click Generate.
The options that appear can include the following:
Generate property stub
Generate field stub
Generate method stub
Generate class
Generate new type (for a class, struct, interface, or enum)
}
10:22:10 產生事件處理常式 Generate event handlers
在程式碼編輯器中,IntelliSense 可協助您將方法 (事件處理常式) 連結到事件欄位。
當您在 .cs 檔案的事件欄位後輸入 += 運算子時,IntelliSense 會提示您按下 TAB 鍵的選項。 這會插入委派的新執行個體,指向處理事件的方法。
按鈕自動連結
如果按下 TAB,IntelliSense 會自動為您完成陳述式,並在程式碼編輯器中將事件處理常式參考顯示為選取的文字。 若要完成自動事件連結,IntelliSense 會提示您再次按下 TAB 鍵,為事件處理常式建立空白的虛設常式
如果 IntelliSense 建立的新委派,參考的是現有的事件處理常式,IntelliSense 就會在工具提示中傳達這項資訊。 接著您就可以修改此參考,程式碼編輯器中已選取該文字。 否則,自動事件連結即於此刻完成。
如果按下 TAB,IntelliSense 就會虛設出有正確簽章的方法,並將游標放在事件處理常式的主體中。
If you press TAB, IntelliSense stubs out a method with the correct signature and puts the cursor in the body of your event handler.
使用 [檢視] 功能表上的 [向後巡覽] 命令 (CTRL+-),返回事件連結陳述式。
}
}
Visual Studio 中的預設鍵盤快速鍵{http://bit.ly/2vLwbuV
10:39:00 圖示影像編輯器{ Image Editor for Icons http://bit.ly/2vLKpfA
有免費圖示影像可以用:You can download at no cost the Visual Studio Image Library which contains many animations, bitmaps, and icons that you can use in your applications. For more information about how to download the library, see The Visual Studio Image Library.
只能編輯連結的資源,不能編輯內嵌的:The Visual Studio resource editors do not support editing embedded resources.
影像編輯器 {http://bit.ly/2vWn0I3
本文件說明如何使用「Visual Studio 影像編輯器」來檢視及修改材質和影像資源。
}
}
}
識別及自訂 Visual Studio 中的鍵盤快速鍵{http://bit.ly/2hQVlCz Identifying and Customizing Keyboard Shortcuts in Visual Studio
您一定可以在 [選項] 對話方塊中找到和變更鍵盤快速鍵。 您也可以在 常用命令的預設鍵盤快速鍵中查閱數十個命令的預設鍵盤快速鍵,您也可以在 預設鍵盤快速鍵 中尋找所有預設捷徑的完整清單 (以 [一般開發設定] 為基礎)。
11:02:20 Visual Studio 中常用命令的預設鍵盤快速鍵 http://bit.ly/2wOXGRc
如果您在特定內容中使用這類捷徑,該捷徑會叫用特定內容的命令,而不是全域內容的命令。
您的設定和 Visual Studio 版本可能會變更功能表命令的名稱和位置,以及出現在對話方塊中的選項。 本主題是以 [一般開發設定] 為基礎。
識別鍵盤快速鍵(就是找出鍵盤快速鍵)
在功能表列上選擇 [工具]、[選項]。
展開 [環境],然後選擇 [鍵盤]。
如果命令已具有鍵盤快速鍵,則會出現在 [所選取命令的快速鍵] 清單中。
11:07:10 自訂鍵盤快速鍵
11:12:10 您可以將自訂鍵盤快速鍵匯出至檔案,再將檔案提供給其他人,讓其他人匯入資料,以共用您的自訂鍵盤快速鍵。
11:13:50 只匯入鍵盤快速鍵
在 [您要匯入哪一個設定?] 下方,取消選取 [所有設定] 核取方塊,展開 [選項],然後展開 [環境]。
選取 [鍵盤] 核取方塊,然後選擇 [完成] 按鈕。
}
}
10:48:00 韋瓦第 Vivaldi 瀏覽器 在網址和頁籤隔線上按滑鼠中鍵,可以放大,顯示各頁籤之繪圖,或用拖曳拉開。
}
留言