星期日, 8月 16, 2015

[C#] 重複字元

閱讀該教學影片時 小山的 C# 教學-第13課-NumericUpDown,看見作者用雙迴圈產生星號時,原想說用 T-SQL Replicate() 函數就可以用單迴圈,沒想到 C# 沒有對應 Replicate() 的函數,Orz

Project 檔案
[C#] 重複字元-3

Winform 畫面
[C#] 重複字元-1

把 Relpicate() 函數寫成擴充事件來使用
namespace NumericUpDown
{
    public static class ExtChar
    {
        public static string Replicate(this char value , int count)
        {
            // 輸入負值或 0,就把 char 回傳
            count = Math.Max(count,1);
            return new string(value,count);
        }
    }
}
C# Code
namespace NumericUpDown
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnRun_Click(object sender, EventArgs e)
        {
            // numericUpDonw.Value property 回傳值是 decimal
            int count = (int)numericUpDown1.Value;
            // 輸入 0 或負值,就跑一次就好
            count = Math.Max(count, 1);

            char sign = '*' ;
            lblResult.Text = string.Empty;

            for (int i = 1; i <= count; i++)
            {
                lblResult.Text += string.Concat(sign.Replicate(i), Environment.NewLine);
            }
        }
    }
}
執行結果
[C#] 重複字元-2

一個突發奇想,讓自己的函式庫內又多一個擴充事件,^^

沒有留言:

張貼留言