StringWriter.WriteAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
非同步寫入資料到字串。
多載
| 名稱 | Description |
|---|---|
| WriteAsync(Char) |
非同步地將字元寫入字串。 |
| WriteAsync(String) |
非同步地將字串寫入目前的字串。 |
| WriteAsync(ReadOnlyMemory<Char>, CancellationToken) |
非同步地將記憶體區域的字元寫入字串。 |
| WriteAsync(Char[], Int32, Int32) |
非同步地將一個字元子陣列寫入字串。 |
WriteAsync(Char)
非同步地將字元寫入字串。
public:
override System::Threading::Tasks::Task ^ WriteAsync(char value);
public override System.Threading.Tasks.Task WriteAsync(char value);
[System.Runtime.InteropServices.ComVisible(false)]
public override System.Threading.Tasks.Task WriteAsync(char value);
override this.WriteAsync : char -> System.Threading.Tasks.Task
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.WriteAsync : char -> System.Threading.Tasks.Task
Public Overrides Function WriteAsync (value As Char) As Task
參數
- value
- Char
寫入字串的字元。
傳回
一個代表非同步寫入操作的任務。
- 屬性
例外狀況
弦樂寫字器被處理掉。
字串寫入器目前正被先前的寫入操作使用。
範例
以下範例展示了如何利用此 WriteAsync(Char) 方法書寫字元。
using System;
using System.Text;
using System.IO;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
WriteCharacters();
}
static async void WriteCharacters()
{
StringBuilder stringToWrite = new StringBuilder("Characters in StringBuilder");
stringToWrite.AppendLine();
using (StringWriter writer = new StringWriter(stringToWrite))
{
UnicodeEncoding ue = new UnicodeEncoding();
char[] charsToAdd = ue.GetChars(ue.GetBytes("and chars to add"));
foreach (char c in charsToAdd)
{
await writer.WriteAsync(c);
}
Console.WriteLine(stringToWrite.ToString());
}
}
}
}
// The example displays the following output:
//
// Characters in StringBuilder
// and chars to add
//
Imports System.IO
Imports System.Text
Module Module1
Sub Main()
WriteCharacters()
End Sub
Async Sub WriteCharacters()
Dim stringToWrite As StringBuilder = New StringBuilder("Characters in StringBuilder")
stringToWrite.AppendLine()
Using writer As StringWriter = New StringWriter(stringToWrite)
Dim ue As UnicodeEncoding = New UnicodeEncoding()
Dim charsToAdd() = ue.GetChars(ue.GetBytes("and chars to add"))
For Each c As Char In charsToAdd
Await writer.WriteAsync(c)
Next
Console.WriteLine(stringToWrite.ToString())
End Using
End Sub
End Module
' The example displays the following output:
'
' Characters in StringBuilder
' and chars to add
'
備註
此方法在任務中儲存所有非使用例外,該方法的同步對應程式可拋出這些例外。 如果回傳的任務中儲存了例外,該例外會在等待任務時拋出。 使用例外錯誤,例如 ArgumentException,仍會同步拋出。 關於儲存的例外,請參見由 Write(Char)拋出的例外。
適用於
WriteAsync(String)
非同步地將字串寫入目前的字串。
public:
override System::Threading::Tasks::Task ^ WriteAsync(System::String ^ value);
public override System.Threading.Tasks.Task WriteAsync(string value);
[System.Runtime.InteropServices.ComVisible(false)]
public override System.Threading.Tasks.Task WriteAsync(string value);
override this.WriteAsync : string -> System.Threading.Tasks.Task
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.WriteAsync : string -> System.Threading.Tasks.Task
Public Overrides Function WriteAsync (value As String) As Task
參數
- value
- String
要寫入的字串。 若 value , null則文字串流中不會寫入任何資料。
傳回
一個代表非同步寫入操作的任務。
- 屬性
例外狀況
弦樂寫字器被處理掉。
字串寫入器目前正被先前的寫入操作使用。
範例
以下範例展示了如何利用 該 WriteAsync(String) 方法來撰寫字串。
using System;
using System.Text;
using System.IO;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
WriteCharacters();
}
static async void WriteCharacters()
{
StringBuilder stringToWrite = new StringBuilder("Characters in StringBuilder");
stringToWrite.AppendLine();
using (StringWriter writer = new StringWriter(stringToWrite))
{
await writer.WriteAsync("and add characters through StringWriter");
Console.WriteLine(stringToWrite.ToString());
}
}
}
}
// The example displays the following output:
//
// Characters in StringBuilder
// and add characters through StringWriter
//
Imports System.IO
Imports System.Text
Module Module1
Sub Main()
WriteCharacters()
End Sub
Async Sub WriteCharacters()
Dim stringToWrite As StringBuilder = New StringBuilder("Characters in StringBuilder")
stringToWrite.AppendLine()
Using writer As StringWriter = New StringWriter(stringToWrite)
Await writer.WriteAsync("and add characters through StringWriter")
Console.WriteLine(stringToWrite.ToString())
End Using
End Sub
End Module
' The example displays the following output:
'
' Characters in StringBuilder
' and add characters through StringWriter
'
備註
此方法在任務中儲存所有非使用例外,該方法的同步對應程式可拋出這些例外。 如果回傳的任務中儲存了例外,該例外會在等待任務時拋出。 使用例外錯誤,例如 ArgumentException,仍會同步拋出。 關於儲存的例外,請參見由 Write(String)拋出的例外。
適用於
WriteAsync(ReadOnlyMemory<Char>, CancellationToken)
非同步地將記憶體區域的字元寫入字串。
public override System.Threading.Tasks.Task WriteAsync(ReadOnlyMemory<char> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.WriteAsync : ReadOnlyMemory<char> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Overrides Function WriteAsync (buffer As ReadOnlyMemory(Of Char), Optional cancellationToken As CancellationToken = Nothing) As Task
參數
- buffer
- ReadOnlyMemory<Char>
字元記憶體區域,用來寫入字串。
- cancellationToken
- CancellationToken
用來監控取消申請的代幣。 預設值為 None。
傳回
一個代表非同步寫入操作的任務。
例外狀況
取消令牌也被取消了。 此例外會儲存在回傳的任務中。
適用於
WriteAsync(Char[], Int32, Int32)
非同步地將一個字元子陣列寫入字串。
public:
override System::Threading::Tasks::Task ^ WriteAsync(cli::array <char> ^ buffer, int index, int count);
public override System.Threading.Tasks.Task WriteAsync(char[] buffer, int index, int count);
[System.Runtime.InteropServices.ComVisible(false)]
public override System.Threading.Tasks.Task WriteAsync(char[] buffer, int index, int count);
override this.WriteAsync : char[] * int * int -> System.Threading.Tasks.Task
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.WriteAsync : char[] * int * int -> System.Threading.Tasks.Task
Public Overrides Function WriteAsync (buffer As Char(), index As Integer, count As Integer) As Task
參數
- buffer
- Char[]
要從中寫入數據的字元陣列。
- index
- Int32
緩衝區中開始讀取資料的位置。
- count
- Int32
要寫入的字元數上限。
傳回
一個代表非同步寫入操作的任務。
- 屬性
例外狀況
buffer 是 null。
優點indexcount大於緩衝長度。
index 或 count 是陰性。
弦樂寫字器被處理掉。
字串寫入器目前正被先前的寫入操作使用。
範例
以下範例展示了如何利用此 WriteAsync(Char[], Int32, Int32) 方法書寫字元。
using System;
using System.Text;
using System.IO;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
WriteCharacters();
}
static async void WriteCharacters()
{
StringBuilder stringToWrite = new StringBuilder("Characters in StringBuilder");
stringToWrite.AppendLine();
using (StringWriter writer = new StringWriter(stringToWrite))
{
UnicodeEncoding ue = new UnicodeEncoding();
char[] charsToAdd = ue.GetChars(ue.GetBytes("and chars to add"));
await writer.WriteAsync(charsToAdd, 0, charsToAdd.Length);
Console.WriteLine(stringToWrite.ToString());
}
}
}
}
// The example displays the following output:
//
// Characters in StringBuilder
// and chars to add
//
Imports System.IO
Imports System.Text
Module Module1
Sub Main()
WriteCharacters()
End Sub
Async Sub WriteCharacters()
Dim stringToWrite As StringBuilder = New StringBuilder("Characters in StringBuilder")
stringToWrite.AppendLine()
Using writer As StringWriter = New StringWriter(stringToWrite)
Dim ue As UnicodeEncoding = New UnicodeEncoding()
Dim charsToAdd() = ue.GetChars(ue.GetBytes("and chars to add"))
Await writer.WriteAsync(charsToAdd, 0, charsToAdd.Length)
Console.WriteLine(stringToWrite.ToString())
End Using
End Sub
End Module
' The example displays the following output:
'
' Characters in StringBuilder
' and chars to add
'
備註
此方法在任務中儲存所有非使用例外,該方法的同步對應程式可拋出這些例外。 如果回傳的任務中儲存了例外,該例外會在等待任務時拋出。 使用例外錯誤,例如 ArgumentException,仍會同步拋出。 關於儲存的例外,請參見由 Write(Char[], Int32, Int32)拋出的例外。