c#实现KTV点歌系统
更新时间:2020年6月25日 11:27 点击:1877
下面通过图文并茂的方式给大家分享C#实现KTV点歌系统。
public enum SongPlayState { //未播放,播放,重播,切歌 unplayed, played, again, cut } public class Song { public string SongName { get; set; }//歌曲名称 public string SongURL { get; set; }//歌曲路径 public SongPlayState playState = SongPlayState.unplayed;//默认未播放 internal SongPlayState PlayState { get; set; } //状态为已播 public void SetSongPlayed() { this.PlayState = SongPlayState.played; } //重唱 public void SetPlayAgain() { this.playState = SongPlayState.again; } //切歌 public void SetSongCut() { this.playState = SongPlayState.cut; }
PlayList类中实现切歌 重唱 下一首 等.....
public class PlayList { //定义一个长度为、 的歌曲数组,默认存储 首歌曲 public static Song[] SongList = new Song[ ]; public static int SongIndex = ;//当前播放的歌曲在数组中的索引 //点播一首歌曲,其实是将歌曲对象添加到歌曲数组中 public static bool AddSong(Song song) { bool success = false;//记录添加歌曲是否成功 for (int i = ; i < SongList.Length; i++) { //找到数组中第一个为null的位置 if (SongList[i] == null) { SongList[i] = song; success = true; break; } } return success; } //获取当前播放的歌曲::既然是获取当前播放的歌曲,返回值肯定是Song类型 public static Song GetPlaySong() { if (SongList[SongIndex] != null) { return SongList[SongIndex]; } else { return null; } } /// <summary> /// 播放下一首 /// </summary> public static void MoveOn() { if (SongList[SongIndex] != null && SongList[SongIndex].PlayState == SongPlayState.again) { SongList[SongIndex].SetSongPlayed(); } else { SongIndex++; } } /// <summary> /// 当前播放的歌曲名称 /// </summary> /// <returns>歌曲名称</returns> public static string PlayingSongName() { string songName = ""; // 歌曲名称 if (SongList[SongIndex] != null) { songName = SongList[SongIndex].SongName; } return songName; } /// <summary> /// 下一首要播放的歌曲名称 /// </summary> /// <returns>歌曲名称</returns> public static string NextSongName() { string songName = ""; // 歌曲名称 if (SongList[SongIndex + ] != null) { songName = SongList[SongIndex + ].SongName; } return songName; } //重放当前歌曲 public static void PlayAgain() { if (SongList[SongIndex] != null) { SongList[SongIndex].SetPlayAgain(); } } //切歌 public static void CutSong(int index) { int i;//循环变量,代表切歌的位置 if (index == - )//循环变量,代表切割的位置 { i = SongIndex; } else { i = index;//从切歌的位置开始,将歌曲逐个向前移一个位置 } SongList[i].SetSongCut(); while (SongList[i] != null) { SongList[i] = SongList[i + ]; i++; //如果达到数组最后一个元素,就将最后一个元素指向空 if (i == SongList.Length) { SongList[i] = null; } } } }
实现歌手点歌
public FrmMain frmMain; string connectionStr = "server=.;database=MyKTV;uid=sa"; DBHelp db = new DBHelp(); private SqlConnection con; //首先要查出数据库中的图片路径和歌曲路径 private void FrmCountry_Load(object sender, EventArgs e) { con = new SqlConnection(connectionStr); con.Open(); string sql = "select resource_path from resource_path where resource_id= "; string sqlsongpath = "select resource_path from resource_path where resource_id= "; SqlCommand cmd = new SqlCommand(sql,con); SqlCommand cmd = new SqlCommand(sqlsongpath, con); KtvUnit.ImagePath = cmd.ExecuteScalar().ToString(); KtvUnit.SongPath = cmd .ExecuteScalar().ToString(); con.Close(); } //点击歌手男女或组合时 private void LvOne_Click(object sender, EventArgs e) { LoadSingerArea(); } public string singer_type { get; set; } private void LoadSingerArea() { if (this.LvOne.SelectedItems[ ] != null) { LvOne.Visible = false; LvTwo.Location = LvOne.Location; LvTwo.Dock = DockStyle.Fill; LvTwo.Visible = true; this.singer_type=Convert.ToString(LvOne.SelectedItems[ ].Text); } con = new SqlConnection(connectionStr); string sql = "select singertype_id,singertype_name from singer_type"; SqlCommand cmd = new SqlCommand(sql, con); SqlDataReader dr; try { con.Open(); LvTwo.Items.Clear(); dr = cmd.ExecuteReader(); if (dr.HasRows) { int index = ; while (dr.Read()) { ListViewItem lvItem = new ListViewItem(); int typeid = Convert.ToInt (dr["singertype_id"]); string typename = Convert.ToString(dr["singertype_name"]); lvItem.Text = typename; lvItem.Tag = typeid; lvItem.ImageIndex = index; LvTwo.Items.Add(lvItem); index++; } } dr.Close(); } catch (Exception ex) { MessageBox.Show("系统出现异常" + ex.Message); } finally { con.Close(); } } public string singertype_id { get; set; } /// <summary> /// 点击地区类型时 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LvTwo_Click(object sender, EventArgs e) { if (this.LvTwo.SelectedItems[ ] != null) { LvTwo.Visible = false; Lvthree.Location = LvTwo.Location; Lvthree.Dock = DockStyle.Fill; Lvthree.Visible = true; this.singertype_id = Convert.ToString(LvTwo.SelectedItems[ ].Tag); } string result = singer_type; if (result != "组合") { result = singer_type == "女歌手" ? "女" : "男"; } con = new SqlConnection(connectionStr); string sql =string.Format( "select singer_id,singer_name,singer_photo_url from singer_info where singertype_id={ } and singer_Sex='{ }'",singertype_id,result); SqlCommand cmd = new SqlCommand(sql, con); SqlDataReader dr; try { con.Open(); int index = ; Lvthree.Items.Clear(); imageList .Images.Clear(); dr = cmd.ExecuteReader(); if (dr.HasRows) { while (dr.Read()) { string photoURL =KtvUnit.ImagePath + Convert.ToString(dr["singer_photo_url"]); //先给ImageList填充图片 imageList .Images.Add(Image.FromFile(photoURL)); ListViewItem lvItem = new ListViewItem(); lvItem.Text = Convert.ToString(dr["singer_name"]); lvItem.Tag = Convert.ToString(dr["singer_id"]); lvItem.ImageIndex = index; Lvthree.Items.Add(lvItem); index++; } } dr.Close(); } catch (Exception ex) { MessageBox.Show("系统出现异常" + ex.Message); } finally { con.Close(); } } public void SongList() { //读取数据库,读出该歌手的所有歌曲 StringBuilder sb = new StringBuilder(); //拼接SQL语句 sb.AppendFormat("select song_id,song_name,song_url,singer_name from song_info,singer_info where singer_name='{ }' and song_info.singer_id={ }", Lvthree.SelectedItems[ ].Text, Convert.ToInt (Lvthree.SelectedItems[ ].Tag)); FrmSongList songList = new FrmSongList(); songList.Sql = sb.ToString(); songList.Previous = KtvClient.PrevioisForm.Singer;//指定返回的窗体是按歌手点歌 songList.ShowDialog(); this.Close(); } private void Lvthree_Click(object sender, EventArgs e) { SongList(); } private void tsSingerMain_Click(object sender, EventArgs e) { FrmMain main = new FrmMain(); main.Show(); this.Hide(); } private void tsSingerBack_Click(object sender, EventArgs e) { if (this.LvOne.Visible==true) { FrmMain man = new FrmMain(); man.Show(); this.Hide(); } else if (this.LvTwo.Visible==true) { this.LvTwo.Visible = false; this.LvOne.Visible = true; } else if (this.Lvthree.Visible==true) { this.Lvthree.Visible = false; this.LvTwo.Visible = true; } } private void tsSingerCut_Click(object sender, EventArgs e) { PlayList.CutSong(- ); } private void tsSingerAgain_Click(object sender, EventArgs e) { PlayList.PlayAgain(); } private void tsSingerYidian_Click(object sender, EventArgs e) { FrmPlayList frm = new FrmPlayList(); frm.Show(); }
拼音点歌
public FrmMain frmMain; [DllImportAttribute("user .dll")] private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags); DBHelp db = new DBHelp(); string connectionStr = "server=.;database=MyKTV;uid=sa"; private void FrmPinYin_Load(object sender, EventArgs e) { AnimateWindow(this.Handle, , FrmMain.AW_SLIDE + FrmMain.AW_VER_POSITIVE); SqlConnection con = new SqlConnection(connectionStr); con.Open(); db.connection(); string sqlsongpath = "select resource_path from resource_path where resource_id= "; SqlCommand cmd = new SqlCommand(sqlsongpath, con); KtvUnit.SongPath = cmd.ExecuteScalar().ToString(); } private void btnSearch_Click(object sender, EventArgs e) { string PinYin = this.txtPinYin.Text; //判断是否是中文 还是拼音 if (!Regex.IsMatch(this.txtPinYin.Text, @"^[\u e -\u fa ]+$")) { StringBuilder PY = new StringBuilder(PinYin); for (int i = ; i <= PY.Length; i++) { PY.Insert(i, "%"); i++; } string sql = string.Format("SELECT song_name,singer_name FROM dbo.singer_info, dbo.song_info WHERE dbo.singer_info.singer_id=dbo.song_info.singer_id AND song_ab LIKE '{ }'", PY); this.dgvPinYinInfo.DataSource = db.dataTable(sql,"PY"); } else { StringBuilder ZW = new StringBuilder(PinYin); for (int i = ; i < ZW.Length; i++) { ZW.Insert(i,"%"); i++; } string sql = string.Format("SELECT song_name,singer_name FROM dbo.singer_info, dbo.song_info WHERE dbo.singer_info.singer_id=dbo.song_info.singer_id AND song_name LIKE '{ }'", ZW); this.dgvPinYinInfo.DataSource = db.dataTable(sql, "PY"); } } private void dgvPinYinInfo_DoubleClick(object sender, EventArgs e) { string songname = this.dgvPinYinInfo.SelectedRows[ ].Cells["song_name"].Value.ToString(); DBHelp db = new DBHelp(); db.connection(); string sql = string.Format("SELECT song_name,singer_name,song_url,song_photo_url FROM dbo.song_info,dbo.singer_info where dbo.singer_info.singer_id=dbo.song_info.singer_id and song_name='{ }'",songname); SqlDataReader reader = db.ExecuteReaders(sql.ToString()); Song song; if (reader.Read()) { song = new Song(); song.SongName = reader["song_name"].ToString(); song.SongURL = KtvUnit.SongPath+reader["song_url"].ToString(); PlayList.AddSong(song); } reader.Close(); } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "a"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "b"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "c"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "d"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "e"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "f"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "g"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "h"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "i"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "j"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "k"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "l"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "m"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "n"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "o"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "p"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "q"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "r"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "s"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "t"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "u"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "v"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "w"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "x"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "y"; } private void pictureBox _Click(object sender, EventArgs e) { textBox .Text = textBox .Text + "z"; } private void FrmPinYin_FormClosing(object sender, FormClosingEventArgs e) { AnimateWindow(this.Handle, , FrmMain.AW_SLIDE + FrmMain.AW_VER_POSITIVE); } public void Binder() { string PinYin = this.textBox .Text; StringBuilder PY = new StringBuilder(PinYin); for (int i = ; i <= PY.Length; i++) { PY.Insert(i, "%"); i++; } string sql = string.Format("SELECT song_name,singer_name FROM dbo.singer_info, dbo.song_info WHERE dbo.singer_info.singer_id=dbo.song_info.singer_id AND song_ab LIKE '{ }'", PY); DataSet ds = db.dataSet(sql, "PY"); if (ds.Tables["PY"]!=null) { ds.Tables["PY"].Clear(); } this.dgvPinYinInfo.DataSource = db.dataTable(sql, "PY"); } private void pictureBox _Click(object sender, EventArgs e) { string text = textBox .Text; int index = text.Length - ; if (index >= ) { textBox .Text = text.Remove(index); } } private void textBox _TextChanged(object sender, EventArgs e) { if (textBox .Text!=string.Empty) { Binder(); this.dgvPinYinInfo.AutoGenerateColumns = false; } else { this.dgvPinYinInfo.DataSource=null; } } private void tsPYMain_Click(object sender, EventArgs e) { FrmMain main = new FrmMain(); main.Show(); this.Hide(); } private void txPYAgain_Click(object sender, EventArgs e) { FrmMain main = new FrmMain(); main.Playsong(); } Song song = new Song(); private void tsPYCut_Click(object sender, EventArgs e) { song.playState = SongPlayState.cut; } private void tsPYYidian_Click(object sender, EventArgs e) { FrmPlayList list = new FrmPlayList(); list.Show(); } private void tsPYBack_Click(object sender, EventArgs e) { Application.Exit(); }
类型点歌
public FrmMain frmMain; string connectionStr = "server=.;database=MyKTV;uid=sa"; DBHelp db = new DBHelp(); private SqlConnection con; private void FrmSongType_Load(object sender, EventArgs e) { con = new SqlConnection(connectionStr); con.Open(); string sql = "select resource_path from resource_path where resource_id= "; string sqlsongpath = "select resource_path from resource_path where resource_id= "; SqlCommand cmd = new SqlCommand(sqlsongpath,con); KtvUnit.SongPath = cmd .ExecuteScalar().ToString(); SqlCommand cmd = new SqlCommand(sql, con); KtvUnit.ImagePath = cmd.ExecuteScalar().ToString(); con.Close(); con = new SqlConnection(connectionStr); string sql = string.Format("select songtype_id,songtype_name,songtype_URL from song_type"); SqlCommand cmd = new SqlCommand(sql , con); SqlDataReader dr; try { con.Open(); int index = ; lvSongType.Items.Clear(); imageList .Images.Clear(); dr = cmd .ExecuteReader(); if (dr.HasRows) { while (dr.Read()) { string photoURL = KtvUnit.ImagePath + Convert.ToString(dr["songtype_URL"]); //先给ImageList填充图片 imageList .Images.Add(Image.FromFile(photoURL)); ListViewItem lvItem = new ListViewItem(); lvItem.Text = Convert.ToString(dr["songtype_name"]); lvItem.Tag = Convert.ToString(dr["songtype_id"]); lvItem.ImageIndex = index; lvSongType.Items.Add(lvItem); index++; } } dr.Close(); } catch (Exception ex) { MessageBox.Show("系统出现异常" + ex.Message); } finally { con.Close(); } } private void LoadSongType() { //读取数据库,读出该歌曲类型的所有歌曲 StringBuilder sb = new StringBuilder(); //拼接SQL语句 sb.AppendFormat("select song_info.song_name,singer_info.singer_name,song_info.song_url from singer_info,song_info where song_info.singer_id=singer_info.singer_id and song_info.songtype_id={ }", Convert.ToInt (lvSongType.SelectedItems[ ].Tag)); FrmSongList songList = new FrmSongList(); songList.Sql = sb.ToString(); songList.Previous = KtvClient.PrevioisForm.SongType;//指定返回的窗体是按歌曲类型点歌 songList.ShowDialog(); this.Close(); } private void lvSongType_Click(object sender, EventArgs e) { LoadSongType(); } private void tsTYSingerMain_Click(object sender, EventArgs e) { FrmMain main = new FrmMain(); main.Show(); this.Hide(); } private void tsTYSingerAgain_Click(object sender, EventArgs e) { FrmMain main = new FrmMain(); main.Playsong(); } Song song = new Song(); private void tsTYSingerCut_Click(object sender, EventArgs e) { song.playState = SongPlayState.cut; } private void tsTYSingerYidian_Click(object sender, EventArgs e) { FrmPlayList list = new FrmPlayList(); list.Show(); } private void tsTYSingerBack_Click(object sender, EventArgs e) { FrmMain main = new FrmMain(); main.Show(); this.Hide(); }
金榜排行
public FrmMain frmMain; DBHelp db = new DBHelp(); string connectionStr = "server=.;database=MyKTV;uid=sa"; private void FrmJB_Load(object sender, EventArgs e) { SqlConnection con = new SqlConnection(connectionStr); con.Open(); db.connection(); string sql = "SELECT song_name,song_play_count FROM dbo.song_info ORDER BY song_play_count DESC"; string sqlsongpath = "select resource_path from resource_path where resource_id= "; SqlCommand cmd = new SqlCommand(sqlsongpath, con); KtvUnit.SongPath = cmd.ExecuteScalar().ToString(); DataSet ds = db.dataSet(sql,"Count"); this.dgvSongList.DataSource = ds.Tables["Count"].DefaultView; } private void dgvSongList_Click(object sender, EventArgs e) { DBHelp db = new DBHelp(); if (dgvSongList.SelectedRows[ ]!=null) { string songname = this.dgvSongList.SelectedRows[ ].Cells["SongName"].Value.ToString(); db.connection(); string sql = string.Format("SELECT song_name,singer_name,song_url,song_photo_url FROM dbo.song_info,dbo.singer_info where dbo.singer_info.singer_id=dbo.song_info.singer_id and song_name='{ }'", songname); SqlDataReader reader = db.ExecuteReaders(sql.ToString()); Song song; if (reader.Read()) { song = new Song(); song.SongName = reader["song_name"].ToString(); song.SongURL = KtvUnit.SongPath + reader["song_url"].ToString(); PlayList.AddSong(song); } reader.Close(); } else { MessageBox.Show("空"); } }
数字点歌
public FrmMain frmMain; string connectionStr = "server=.;database=MyKTV;uid=sa"; DBHelp db = new DBHelp(); private SqlConnection con; private void FrmNumber_Load(object sender, EventArgs e) { con = new SqlConnection(connectionStr); con.Open(); string sqlsongpath = "select resource_path from resource_path where resource_id= "; SqlCommand cmd = new SqlCommand(sqlsongpath, con); KtvUnit.SongPath = cmd.ExecuteScalar().ToString(); con.Close(); for (int i = ; i <= ; i++) { for (int j = ; j <= ; j++) { Label label = new Label(); label.ForeColor = Color.Red; label.BackColor = Color.Pink; label.Font=new System.Drawing.Font("华文彩云", ); label.TextAlign = ContentAlignment.MiddleCenter; label.Click += label_Click; this.MouseMove += FrmNumber_MouseMove; label.MouseHover += label_MouseHover; label.Size = new System.Drawing.Size( , ); label.Text = j.ToString(); if (i > ) { label.Text = (j + i + ).ToString(); } if (i > ) { label.Text = (j + i + ).ToString(); } if (i > ) { label.Text = (j + i + ).ToString(); } label.Location = new Point( + * j, + * i); this.Controls.Add(label); } } }
已点列表
private void FrmPlayList_Load(object sender, EventArgs e) { SongList(); } public void SongList() { lvSong.Items.Clear(); for (int i = ; i < PlayList.SongList.Length; i++) { if (PlayList.SongList[i]!=null) { ListViewItem item = new ListViewItem(); item.Text = PlayList.SongList[i].SongName; item.Tag = i; string playstate = PlayList.SongList[i].PlayState == SongPlayState.unplayed ? "未播放" : "已播"; item.SubItems.Add(playstate); lvSong.Items.Add(item); } } } private void btnClose_Click(object sender, EventArgs e) { this.Close(); }
以上就是C#实现KTV点歌系统的全部代码,希望大家喜欢。
相关文章
- 我们在使用C#做项目的时候,基本上都需要制作登录界面,那么今天我们就来一步步看看,如果简单的实现登录界面呢,本文给出2个例子,由简入难,希望大家能够喜欢。...2020-06-25
- 这篇文章主要介绍了C# 字段和属性的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-11-03
- 这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- 这篇文章主要介绍了C#实现简单的Http请求的方法,以实例形式较为详细的分析了C#实现Http请求的具体方法,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了C#中new的几种用法,具有很好的参考价值,下面跟着小编一起来看下吧...2020-06-25
使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)
这篇文章主要介绍了使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25- 这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 最近做一个小项目不可避免的需要前端脚本与后台进行交互。由于是在asp.net中实现,故问题演化成asp.net中jiavascript与后台c#如何进行交互。...2020-06-25
- 这篇文章主要用实例讲解C#递归算法的概念以及用法,文中代码非常详细,帮助大家更好的参考和学习,感兴趣的朋友可以了解下...2020-06-25
- 本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
- 轻松学习C#的基础入门,了解C#最基本的知识点,C#是一种简洁的,类型安全的一种完全面向对象的开发语言,是Microsoft专门基于.NET Framework平台开发的而量身定做的高级程序设计语言,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
- 这篇文章主要介绍了c#中(&&,||)与(&,|)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 这篇文章主要介绍了C#绘制曲线图的方法,以完整实例形式较为详细的分析了C#进行曲线绘制的具体步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了c#自带缓存使用方法,包括获取数据缓存、设置数据缓存、移除指定数据缓存等方法,需要的朋友可以参考下...2020-06-25
- 下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 这篇文章主要介绍了C#中list用法,结合实例形式分析了C#中list排序、运算、转换等常见操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25