一、cba赛程
C#是微软公司推出的一种针对Windows平台的高级编程语言。而C#对于很多开发者来说,就像NBA对于球迷一样,是一种热爱和追求。在C#的社区中,类似NBA赛程一样的热门话题,就是cba赛程。这里我们将以使用C#实现获取最新cba赛程为例,详细阐述C#的WEB服务。
首先我们需要创建一个ASP.NET WEB服务项目,然后在代码中使用HttpClient进行cba网站的数据请求,获取json格式的数据后进行反序列化,最终获取最新的cba赛程。以下是相关代码实现:
using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Web; using System.Web.Services; using Newtonsoft.Json; namespace CBAWebService { ////// 获取cba赛程的WEB服务 /// [WebService(Namespace = "http://cba.com/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class CBASchedule : WebService { [WebMethod] public string GetSchedule() { using (var httpClient = new HttpClient()) { var result = httpClient.GetAsync("http://cba.sports.sina.com.cn/cba/schedule/index.json").Result; var json = result.Content.ReadAsStringAsync().Result; var schedule = JsonConvert.DeserializeObject<List<Schedule>>('[' + json + ']'); var latestSchedule = schedule.OrderByDescending(s => s.date).ThenByDescending(s => s.id).First(); return JsonConvert.SerializeObject(latestSchedule, Formatting.None); } } } public class Schedule { public string date { get; set; } public string time { get; set; } public string leftTeam { get; set; } public string rightTeam { get; set; } public string url { get; set; } public int id { get; set; } } }
二、coach
使用C#开发一个教练管理系统,可以让我们更好地了解C#的面向对象思想和语法知识。下面是一个简单的代码实例展示如何创建一个Coach类:
public class Coach { private string name; private int age; private string teamName; public Coach(string name, int age, string teamName) { this.name = name; this.age = age; this.teamName = teamName; } public string GetName() { return this.name; } public void SetName(string name) { this.name = name; } public int GetAge() { return this.age; } public void SetAge(int age) { this.age = age; } public string GetTeamName() { return this.teamName; } public void SetTeamName(string teamName) { this.teamName = teamName; } }
三、cctv5节目表
C#可以用来开发跨平台的移动应用程序。在移动应用的开发中,往往需要使用到网络请求和数据解析,以下是在C#移动应用中获取cctv5节目表的相关代码:
public partial class Form1 : Form { public Form1() { InitializeComponent(); GetCctv5ProgramTable(); } private async void GetCctv5ProgramTable() { var client = new HttpClient(); var response = await client.GetAsync("http://api.cntv.cn/epg/getEpgInfoByChannelNew?c=china&d=20210822&p=1&v=4&cb=epgnew&_=" + GetTimeStamp().ToString()); var result = await response.Content.ReadAsStringAsync(); // 省略解析json,更新UI的部分代码 } private int GetTimeStamp() { return Convert.ToInt32(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds); } }
四、chat GPT人工智能
使用C#开发聊天机器人的应用程序是一个不错的练手项目,下面我们展示的是如何把GPT人工智能集成到C#聊天机器人中:
public class Gpt2Bot { private DefaultHttpClient httpClient = new DefaultHttpClient(); public async Task<string> GetResponse(string query) { var json = JsonConvert.SerializeObject(new { textInput = query }); var httpRequestMessage = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("https://api.ai21.com/gpt2?max_tokens=64&temperature=0.7"), Headers = { { HttpRequestHeader.ContentType.ToString(), "application/json; charset=utf-8" }, { "Authorization", "Bearer " + GetAuthToken() } }, Content = new StringContent(json, Encoding.UTF8, "application/json") }; var httpResponseMessage = await httpClient.SendAsync(httpRequestMessage).ConfigureAwait(false); httpResponseMessage.EnsureSuccessStatusCode(); var responseBody = await httpResponseMessage.Content.ReadAsStringAsync().ConfigureAwait(false); var responseJson = JsonConvert.DeserializeObject(responseBody); return ExtractTextFromJson(responseJson); } private string ExtractTextFromJson(dynamic responseJson) { // 省略解析json } private string GetAuthToken() { // 省略获取token的部分代码 } }
五、cctv5在线直播
C#可以用于开发桌面应用程序,比如视频播放器。以下是一个简单的代码实现展示如何使用C#实现cctv5直播:
public partial class MainForm : Form { private HttpServer _localServer; private Process _vlcPlayerProcess; public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { var m3u8Url = "http://lives.cctv.com/1001.m3u8"; var vlcPlayerPath = @"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"; if (!File.Exists(vlcPlayerPath)) { MessageBox.Show("请先安装VLC播放器"); return; } try { _localServer = new HttpServer(m3u8Url); var localUrl = "http://localhost:" + _localServer.Port.ToString() + "/"; _vlcPlayerProcess = Process.Start(vlcPlayerPath, localUrl); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { _localServer?.Dispose(); _vlcPlayerProcess?.Kill(); } } public class HttpServer : IDisposable { private readonly HttpListener _listener; private readonly string _url; private readonly byte[] _buffer = new byte[0x10000]; private Task _acceptTask; public int Port { get; } public HttpServer(string url) { _url = url; _listener = new HttpListener(); _listener.Prefixes.Add(url); _listener.Start(); Port = new Uri(url).Port; _acceptTask = Task.Factory.StartNew(AcceptConnections, this, TaskCreationOptions.LongRunning); } private async Task AcceptConnections() { while (_listener.IsListening) { try { var context = await _listener.GetContextAsync(); var buffering = context.Response.SendChunked; var requestUrl = context.Request.RawUrl; using (var client = new HttpClient()) { var response = await client.GetAsync(requestUrl); var content = await response.Content.ReadAsByteArrayAsync(); context.Response.ContentLength64 = content.Length; await context.Response.OutputStream.WriteAsync(content, 0, content.Length); } } catch (HttpListenerException) { } catch (ObjectDisposedException) { } } } public void Dispose() { _listener?.Stop(); _listener?.Close(); _acceptTask?.Dispose(); } }
六、c1驾照能开什么车
使用C#实现一个C1驾照考试题库,可以更好地了解C#操作数据库的知识。以下是相关代码实现:
public class Question { private readonly string _connectionString; private readonly MySqlConnection _conn; public int Id { get; set; } public string Title { get; set; } public string OptionA { get; set; } public string OptionB { get; set; } public string OptionC { get; set; } public string OptionD { get; set; } public string Answer { get; set; } public string Analysis { get; set; } public int Type { get; set; } public Question() { _connectionString = ConfigurationManager.ConnectionStrings["QuestionDB"].ConnectionString; _conn = new MySqlConnection(_connectionString); } public void Insert() { _conn.Open(); var insertCommand = new MySqlCommand { Connection = _conn, CommandText = "INSERT INTO question (title, option_a, option_b, option_c, option_d, answer, analysis, type) " + "VALUES (@title, @optionA, @optionB, @optionC, @optionD, @answer, @analysis, @type);" }; insertCommand.Parameters.AddWithValue("@title", Title); insertCommand.Parameters.AddWithValue("@optionA", OptionA); insertCommand.Parameters.AddWithValue("@optionB", OptionB); insertCommand.Parameters.AddWithValue("@optionC", OptionC); insertCommand.Parameters.AddWithValue("@optionD", OptionD); insertCommand.Parameters.AddWithValue("@answer", Answer); insertCommand.Parameters.AddWithValue("@analysis", Analysis); insertCommand.Parameters.AddWithValue("@type", Type); insertCommand.ExecuteNonQuery(); _conn.Close(); } public Question GetById(int id) { _conn.Open(); var selectCommand = new MySqlCommand { Connection = _conn, CommandText = "SELECT * FROM question WHERE id = @id" }; selectCommand.Parameters.AddWithValue("@id", id); var reader = selectCommand.ExecuteReader(); var question = new Question(); while (reader.Read()) { question.Id = reader.GetInt32("id"); question.Title = reader.GetString("title"); question.OptionA = reader.GetString("option_a"); question.OptionB = reader.GetString("option_b"); question.OptionC = reader.GetString("option_c"); question.OptionD = reader.GetString("option_d"); question.Answer = reader.GetString("answer"); question.Analysis = reader.GetString("analysis"); question.Type = reader.GetInt32("type"); } reader.Close(); _conn.Close(); return question; } }
七、c反应蛋白高说明什么
在健康检查中,如果我们的c反应蛋白高了,就说明可能存在炎症、感染等相关问题。使用C#可以开发健康管理应用程序,将c反应蛋白高值输入进去,给出相应的健康分析报告。以下是相关代码展示:
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnAnalysis_Click(object sender, EventArgs e) { var crpValue = Convert.ToDouble(tbxCRPValue.Text); var healthReport = GetHealthAnalysisReport(crpValue); lblOverallHealth.Text = healthReport.OverallHealth; lblInflammationRisk.Text = healthReport.InflammationRisk; lblPossibleDiseases.Text = healthReport.PossibleDiseases; } private HealthAnalysisReport GetHealthAnalysisReport(double crpValue) { if (crpValue < 1.0) { return new HealthAnalysisReport("健康", "低", "无"); } else if (crpValue <= 3.0) { return new HealthAnalysisReport("中等", "中等", "感染风险、炎症风险"); } else { return new HealthAnalysisReport("健康风险", "高", "感染、肿瘤等慢性发病风险"); } } } public class HealthAnalysisReport { public string OverallHealth { get; } public string InflammationRisk { get; } public string PossibleDiseases { get; } public HealthAnalysisReport(string overallHealth, string inflammationRisk, string possibleDiseases) { OverallHealth = overallHealth; InflammationRisk = inflammationRisk; PossibleDiseases = possibleDiseases; } }
原创文章,作者:SBAQ,如若转载,请注明出处:https://www.506064.com/n/143610.html