首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 常見問題精選 FAQ:字串轉換、控制項遍歷、推薦書籍、編碼判斷、DataGrid 操作、不規則視窗、星期計算、ASCII 碼、鎖定視窗大小

     編輯:關於C語言

精選 Q&A

Q:如何快速將字元陣列轉為字串?
char[] arr = { 'H', 'e', 'l', 'l', 'o' };
string s = new string(arr); // "Hello"
Q:如何遍歷表單中特定型別的控制項(如 DateTimePicker)?
foreach (Control c in this.Controls)
{
    if (c is DateTimePicker dtp)
    {
        // 處理 dtp
        Console.WriteLine(dtp.Name);
    }
}

注意:僅遍歷第一層,巢狀容器需遞迴。

Q:想學 C#,有好書推薦?
  • 《C# 高級程式設計》(Professional C#,Wrox)
  • 官方 .NET SDK 文件:最權威、最新、免費。
Q:如何判斷字串是否包含全形字元?
bool HasFullWidth(string s) => s.Any(c => c > 255); // 簡易判斷:ASCII 範圍外視為全形

嚴謹做法應用 Char.GetUnicodeCategory 或 Microsoft.VisualBasic.Strings.StrConv。

Q:DataGrid 的 DataSource 必須是 DataSet 嗎?可否直接操作儲存格?

DataSource 可接受實作 IList/IListSource 的任何物件(DataTable、List<T>、自訂集合)。直接操作儲存格:

// 寫入
dataGrid[row, col] = "aaaa";
// 讀取
string val = dataGrid[row, col]?.ToString();

本質上仍是操作底層 DataTable 的 Row/Column。

Q:如何取得 DataTable 中 RowState != Deleted 的總列數?
int undeleted = table.Rows.Count - table.DefaultView.Count; 
// DefaultView 預設過濾掉 Deleted,故差值即為非刪除列數
Q:如何建立不規則視窗(非矩形)?

設定 Form.Region 為 GraphicsPath 定義的形狀。參考:CodeProject 範例。

Q:如何判斷今天是這週的第幾天?
int dayOfWeek = (int)DateTime.Now.DayOfWeek; // 0=Sunday ... 6=Saturday
// 或
int dayOfWeek = DateTime.Now.DayOfWeek.GetHashCode();
Q:如何取得字串中某字元的 ASCII 碼?
int ascii = 'a'; // 97
// 或
int ascii = (int)s[0];
Q:如何鎖定 WinForm 視窗大小,禁止使用者拖曳調整?
this.FormBorderStyle = FormBorderStyle.FixedSingle;
// 或 FixedDialog、Fixed3D、FixedToolWindow

補充提醒

  • 以上答案基於 .NET Framework 早期版本,現代 .NET (Core/5+) API 可能有差異,請以官方文件為準。
  • DataGrid 已被 DataGridView 取代,新專案請使用後者。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved