C#_各类应用程序

news2024/11/20 6:17:53

目录

前言

1.  第一个程序:Hello,World!

1.1 Console

1.2 Windows Forms

1.3 WPF(Windows Presentation Foundation)

1.4 ASP.NET Web Forms

1.5 ASP.NET MVC(Model - View - Controller)

1.6 Windows Store Application

1.7 WF(Workflow Foundation)

1.8 WCF(Windows Communication Foundation)


前言

        编程不是 “学” 出来的,而是 “练” 出来的;在反复应用中积累,忽然有一天就会 “顿悟”;所以学习编程不能仅仅局限于看视频,更多的是反复练习,必须亲自动手,学以致用,追求实用。

1.  第一个程序:Hello,World!

Solution 与 Project

  •         Solution 是针对客户需求的总的解决方案。举例,汽车经销商需要一套销售软件
  •         Project 解决具体的某个问题

C# 编写的各类应用程序:

  •         Console (控制台)
  •         WPF(Windows Presentation Foundation)*  (WPF上一节已经实现过了)
  •         Windows Forms(Old) (Old表示是一种比较老的)
  •         ASP.NET Web Forms(Old)
  •         ASP.NET MVC(Model - View - Controller)*
  •         WCF(Windows Communication Foundation)*
  •         Windows Store Application*
  •         Windows Phone Application*
  •         Cloud(Windows Azure)*
  •         WF(Workflow Foundation)

1.1 Console

        新建项目 -> 控制台应用程序 Visual C# 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleHelloworld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello,world!"); // Console 默认为在该环境下调用控制台
            //然后输入 点 ,WriteLine 写一行,然后写出要写入的值
        }
    }
}

1.2 Windows Forms

        新建项目 -> Windows Forms Application

        点击工具箱 -> (如果没有工具箱,点击视图,寻找工具箱) -> 在工具箱里面找到 TextBox(文本) 和 Button(按钮) 分别拖至 Form 中

        点击 Form 中的按钮,设置属性;文本设置为 Click Me(方便给用户使用,简洁易懂,表示这个按钮就是用来点击的)

        然后设置按钮的名字(Name),按钮的名字尽量的设置有意义,不然当出现多个按钮时,很容易混淆用户;( 比如此处,设置Name:buttonSayHello 表示按下这个按键会使得文本呈现Hello  )

        点击 Form 中的文本框(TextBox),设置文本的属性;(文本的Name 设置很重要;因为真正按下按钮,文本呈现的内容是通过程序来写的,写文本内容时,需要调用文本的名字来写程序; 这里设置文本Name:textShowHello;表示按下按钮文本会显示出 Hello;)

        所有都设置完以后,点击 Form 中的按钮,设置按钮的属性;点击 闪电(event 事件) 按钮;

        找到 Click ,双击后面空白处;进入程序书写步骤;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void buttonSayHello_Click(object sender, EventArgs e)
        {
            textShowHello.Text = "Hello,World!";
            //textShowHello 就是之间设置的文本名字 ,在写程序时是需要调用这个的
            //textShowHello  .  Text 表示调用文本
            //后面 引号,表示文本输入的内容
        }
    }
}

1.3 WPF(Windows Presentation Foundation)

        WPF 相对于 1.2的 Windows Forms 来说是一种更加先进的 C#窗口;

        整体的实现功能和实现代码都是一样的,第一节 C#_语言简介_light_2025的博客-CSDN博客 中有 WPF(Windows Presentation Foundation) 的具体使用过程;这里只需要明白 新式的WPF相对于老式的 Windows Form 来说可以更加漂亮的设计界面;随着社会的不断发展,人们对窗口界面的需求不仅仅是在可视化的层次上了,对界面的美观性做出了很大的要求;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            textBox1.Text = "Hello. World!";
            //this.textBox1.Text = "Hello. World!";
            //这里可以发现:实现代码和 Windows Forms 是完全一样的
        }
    }
}

1.4 ASP.NET Web Forms

        文件 -> 新建项目 -> Web -> ASP.NET Web 应用程序

        右击 WebApplication ,添加,Web 窗口; 在弹出的窗口内输入 Default

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication.Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body> 
<% 删除body之间的程序 %>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication.Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body> <%--在body之间写东西就会最终显示在网页上--%>
<h1>Hello,World!<h1> <%--<h1>是最大的标题--%>
</body>
</html>
 

        Ctrl+F5 运行:就会呈现出页面;

        在解决方案资源管理器中右击 WebApplication ,点击 发布,这个功能是 VS2013 特有的功能;通过这个功能我们可以将我们想要设置的页面直接写入我们想要发布的网站,而不需要一步一步的复制了;只需要在 发布Web 中输入想要发布的网址即可,这样通过服务器就可以让全世界的人看到了; 

1.5 ASP.NET MVC(Model - View - Controller)

        文件 -> 新建项目 -> ASP.NET Web 应用程序

        Empty 空的 -> 为以下对象添加文件夹和核心引用,点击 MVC

        在解决方案资源管理器中 右击Controllers ,添加,控制器;

 

        点击添加 MVC 5 控制器 - 空

        在添加控制器中输入 HomeController;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WebApplication1.Controllers
{
    public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index()
        {
            return View();
        }
    }
}

        在 public class 下方空白处 ,右击,添加视图,点击ok;


@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

        在 <h2> <h2> 之间输入Hello World!


@{
    ViewBag.Title = "Index";
}

<h2>Hello,World!</h2>

        Ctrl+F5运行;

1.6 Windows Store Application

        Windows Store Application 就是在平板电脑上写 Hello World!

        文件 -> 新建项目 -> Windows 应用程序 -> 空白应用程序(Windows)

        电脑需要下载开发人员许可证才可以使用该功能;

1.7 WF(Workflow Foundation)

        文件 -> 新建项目 -> Workflow -> Workflow Console Application

        在工具箱中选择 Writeline,写一行,在弹出的文本框中输入 “Hello,World!”

 

        Ctrl+F5运行!

1.8 WCF(Windows Communication Foundation)

        文件 -> 新建项目 -> WCF -> WCF 服务应用程序

        点击解决方案资源管理器中的 IService1.cs;

namespace WcfService1
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
    [ServiceContract]
    public interface IService1
    {

        [OperationContract]
        string GetData(int value);

        [OperationContract]
        CompositeType GetDataUsingDataContract(CompositeType composite);

//下述两行代码是新加入的

        [OperationContract]
        string SayHello();



        // TODO: 在此添加您的服务操作
    }

        在 Service1.svc.cs 中点击 IService1 点击下方的小蓝标识符;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace WcfService1
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
    // 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 Service1.svc 或 Service1.svc.cs,然后开始调试。
    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }


//下面的程序是通过点击 IService1 的下方标识符所出现的;

        public string SayHello()
        {
            return "Hello,World!"; //在这个函数内部输入"Hello,World!";
        }
    }
}

        Ctrl+F5运行;点击左侧的 SayHello,调用,点击OK,会发现下侧会出现 "Hello,World!";

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/491912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Tuxera NTFS2023Mac专业NTFS驱动软件 解决Mac不能写入移动硬盘U盘问题 管理修复磁盘

Tuxera NTFS2023Mac专业NTFS驱动软件 解决Mac不能写入移动硬盘U盘问题 管理修复磁盘问题! NTFS For Mac2023是一款功能强大的MAC读写软件。NTFS For Mac可以帮助用户对磁盘进行日常管理&#xff0c;如果用户电脑的磁盘有问题&#xff0c;可以使用该软件进行修复&#xff0c;延…

Chatgpt系列(一) 如何使用chatgpt

系列文章目录 第一章: 如何使用chatgpt 第二章: chatgpt的概述 第三章: langchain入门 第四章: index 第五章: prompt 目录 系列文章目录 前言 一、LLM是什么&#xff1f; 二、使用步骤 1.学习地址 2.阅读内容重点的介绍 2.答复 读入数据 总结 系列文章目录前言一…

0基础学Java必备的50个知识点

1、编写&#xff1a;编写的Java代码保存在以“.java”结尾的源文件中。 2、编译&#xff1a;使用javac.exe命令编译java源文件&#xff0c;生成字节码文件。 格式&#xff1a;javac 源文件名.java 3、运行&#xff1a;使用java.exe命令解释运行字节码文件。格式&#xff1a;…

Linux笔记3

目录 一、root用户1.su命令2.sudo命令 二、vi/vim编译器1.三种工作模式2.命令模式3.底线命令模式 三、用户和用户组1.用户组管理2.用户管理3.getent命令 四、权限1.查看权限控制信息2.chmod 命令3.chown 命令 五、常用快捷键1.Ctrlc2.Ctrld3.历史命令4.光标移动快捷键 一、root…

亚马逊云科技和安恒信息,发布云原生SaaS主机安全和云原生堡垒机

4月19日&#xff0c;安恒信息首次举行了以“新见未来 实现梦想”为主题的年度新品发布会。来自产业界、投资界、财经界、媒体界等多方代表共同见证了本次发布会。这也是安恒信息自成立以来&#xff0c;首次大规模、高密度地发布新品。 联合产品发布 云原生SaaS主机安全与云原…

Linux 指令(一)+完整思维导图+实图例子+深入细节+通俗易懂建议收藏

绪论 在上一章&#xff0c;我们已经将Linux环境的安装起来了&#xff0c;从本章开始&#xff0c;我们将正式的进入到Linux的学习&#xff0c;Linux的学习还是比较的枯燥无味的&#xff0c;但我们要吃得苦中苦&#xff0c;让我们一起加油&#xff0c;进大厂拿到心仪的offer&…

黑马程序员-职工管理系统实战-附加源码Git

1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C来实现一个基于多态的职工管理系统 公司中职工分为三类&#xff1a;普通员工、经理、老板&#xff0c;显示信息时&#xff0c;需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责…

Redis在项目实践中的问题解决方案汇总

前言 无论是在开发过程中还是在准备跑路的面试过程中&#xff0c;和Redis相关的话题&#xff0c;难免会涉及到四个特殊场景&#xff1a;缓存穿透、缓存雪崩、缓存击穿以及数据一致性。 虽然在作为服务缓存层的时候Redis确实能极大减少服务端的请求压力&#xff0c;但是如果在…

企业组织管理神器:红海云可视化组织管理功能深度解析

在当前的VUCA时代&#xff0c;企业需要保持敏捷以应对变革和不确定性。组织架构作为承载战略目标的重要工具&#xff0c;如果无法敏捷调整&#xff0c;会直接影响企业战略的成功落地。但组织架构的设计和调整会触及其他业务&#xff0c;包括岗位、编制、人员与汇报关系等信息变…

优先级队列(大根堆与小根堆)

优先级队列&#xff08;大根堆与小根堆&#xff09; 文章目录 优先级队列&#xff08;大根堆与小根堆&#xff09;堆的介绍模拟堆以数组模型为例&#xff0c;创建堆向下调整&#xff08;shiftDown&#xff09;入队&#xff08;push&#xff09;及向上调整&#xff08;shiftUp&a…

java获取文件夹下所有文件名

在进行 Java编程的过程中&#xff0c;我们会经常使用到文件夹下的所有文件名。有时候可能不太熟悉 Java编程的小伙伴们会发现&#xff0c;在代码中没有获取到所有的文件名&#xff0c;那么这个时候我们应该怎么去获取到这些文件呢&#xff1f;在进行 Java编程的过程中&#xff…

《花雕学AI》31:ChatGPT--用关键词/咒语/提示词Prompt激发AI绘画的无限创意!

你有没有想过用AI来画画&#xff1f;ChatGPT是一款基于GPT-3的聊天模式的AI绘画工具&#xff0c;它可以根据你输入的关键词/咒语/提示词Prompt来生成不同风格和主题的画作。Prompt是一些简短的文字&#xff0c;可以用来指导ChatGPT的创作过程。在这篇文章中&#xff0c;我将展示…

2个月快速通过PMP证书的经验分享

01 PMP证书是什么&#xff1f; 指的是项目管理专业人士资格认证。它是由美国项目管理协会&#xff08;Project Management Institute(简称PMI)&#xff09;发起的&#xff0c;严格评估项目管理人员知识技能是否具有高品质的资格认证考试。其目的是为了给项目管理人员提供统一的…

Redis【性能 02】Redis-5.0.14伪集群和Docker集群搭建及延迟和性能测试(均无法提升性能)

伪集群及Docker集群搭建测试流程 1.伪集群搭建1.1 环境1.2 搭建1.2.1 集群配置1.2.2 生成其他5个节点配置1.2.3 启动并验证节点状态1.2.4 创建集群1.2.5 集群信息 1.3 测试 2.Docker集群2.1 环境2.2 搭建2.2.1 创建专用网络2.2.2 生成配置文件2.2.3 容器启动及验证2.2.4 创建集…

NIST SP 800-193: BIOS 平台固件弹性指南

NIST SP 800-147&#xff0c;BIOS 保护指南 ( NIST SP 800-147 [1]、NIST SP 800-147B [2]&#xff09;解决了 BIOS 的保护问题 可从此处免费获得&#xff1a; https://doi.org/10.6028/NIST.SP.800-193 摘要 此文档提供了关于支持平台固件和数据对抗潜在地具有破坏性的攻…

python的 __init__.py文件中使用__all__变量

在Python的包&#xff08;Package&#xff09;中&#xff0c;init.py文件可以被用作初始化包的脚本。这个文件会在包被导入时自动执行。同时&#xff0c;init.py文件中的__all__变量也可以被用来限制包中可导入的模块、类或方法。具体来说&#xff0c;__all__变量应该是一个列表…

项目上线 | 兰精携手盖雅工场,数智驱动绿色转型

近年来&#xff0c;纺织纤维行业零碳行动如火如荼。作为低碳环保消费新时尚引领者&#xff0c;同时也是纤维领域隐形冠军&#xff0c;兰精在推进绿色发展的同时&#xff0c;也在不断向内探索企业数字化转型之道&#xff0c;以此反哺业务快速扩张。 数智转型&#xff0c;管理先…

计算机网络面试题(上)

1.TCP/IP 网络模型有哪几层&#xff1f; TCP/IP 网络通常是由上到下分成 4 层&#xff0c;分别是应用层&#xff0c;传输层&#xff0c;网络层和网络接口层。 每一层的封装格式&#xff1a; 网络接口层的传输单位是帧&#xff08;frame&#xff09;&#xff0c;IP 层的传输单位…

探究肺癌患者的CT图像的图像特征并构建一个诊断模型

目标效果图操作说明代码 目标 探究肺癌患者的CT图像的图像特征并构建一个诊断模型 效果图 操作说明 代码中我以建立10张图为例&#xff0c;多少你自己定 准备工作&#xff1a; 1.准备肺癌或非肺癌每个各10张图&#xff0c;在本地创建一个名为“data”的文件夹&#xff0c;用…

【Docker】什么是Dockerfile

文章目录 1、认识DockerFile2、DockerFile的构建过程3、DockerFile常用指令4、实战&#xff1a;构建自己的centos5、CMD和ENTRYPOINT的区别6、DockerFile制作tomcat镜像7、发布镜像到DockerHub8、发布镜像到阿里云 1、认识DockerFile Dockerfile是用来构建docker镜像的文件&am…