.net技术第一章

news2024/11/29 0:38:01

文章目录

  • .NET
  • C# (C Sharp)的特点
  • C# 的应用范围
  • .NET Framework
  • 1.2 创建简单的C#程序
  • 结构和书写规则
  • 类型的声明和使用
  • 类型的声明和使用
  • 命名空间
    • 使用方法
    • 命名空间举例
  • 注释
  • Main方法
    • 命令行参数
    • Main返回值
  • 控制台输入和输出
    • 例子
      • 格式化


.NET

由微软公司提供的免费、跨平台的开源通用开发平台,可用于开发许多不同类型的应用,如:Web,移动设备,PC桌面端等

C# (C Sharp)的特点

  • 是一种现代的、简洁而类型安全的面向对象编程语言
  • C#源于C 语言系列,采用与C、C++或Java一致的花括号({和})语法
  • 能与.NET Framework完美结合

C# 的应用范围

  • 控制台应用
  • 桌面应用
  • UWP应用
  • Web应用开发:ASP.NET、Web服务等
  • Windows Presentation Foundation(WPF)应用程序开发
  • 跨平台:移动应用、智能手机应用开发
  • Windows服务
    ……

.NET Framework

  • C# 程序在 .NET Framework 上运行
  • .NET Framework是一个开发和运行环境,可以使不同的编程语言(如C#、VB.net等)和运行库能够无缝地协同工作,简化开发和部署各种网络集成应用程序或独立应用程序
    在这里插入图片描述
    在这里插入图片描述

1.2 创建简单的C#程序

  • 引用命名空间
  • 定义命名空间
  • 自定义类
  • 定义静态Main方法
  • 调用Console类的静态方法输出
 //c:\CSharpBook\Chapter01\Hello.cs   A "Hello World!" program
02 // compile:csc Hello.cs  -> Hello.exe
03 using System;
04 namespace CSharpBook. Chapter01
05 {
06     class HelloWorld
07    {
08         static void Main() 
09         {
10              Console.WriteLine(“Hello World!);
11         }
12     }
13 }

结构和书写规则

在这里插入图片描述

在这里插入图片描述

类型的声明和使用

声明类的基本语法为:

[类修饰符] class 类名 
{
    类体
}[;]
声明字段和方法:

[字段修饰符] 类型 字段名
[方法修饰符] 返回值类型  方法名 ([形参列表])
{
    方法体
}[;]
类名 对象名= new 类名 ([参数表]); //创建对象
对象名.属性                                        //访问对象属性
对象.方法名([实参列表])

类型的声明和使用

// compile:csc Point.cs  -> Point.exe
using System;
namespace CSharpBook.Chapter01
{
    public class Point    //声明类Point
    {
        public int x, y;    //声明字段x和y,表示坐标点(x,y)
        public Point(int x, int y)  //构造函数
        {
            this.x = x; this.y = y;
        }
        public double Distance(Point p)
        { //声明方法Distance,计算并返回该对象(坐标点)
            //与对象p(另一坐标点)的距离
            return Math.Sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y));
        }
    }


    class PointTest
    {
        static void Main()
        {
            Point p1 = new Point(0, 4);       //创建对象p1(坐标点1)
            Point p2 = new Point(3, 0);       //创建对象p2(坐标点2)
            double dist = p1.Distance(p2);      //调用对象p1的方法Distance
            //访问p1的属性x和y
            Console.WriteLine("点p1的坐标为:(" + p1.x + "," + p1.y + ")");
            //访问p2的属性x和y
            Console.WriteLine("点p2的坐标为:(" + p2.x + "," + p2.y + ")");
            Console.WriteLine("两点之间的距离为:" + dist); Console.ReadKey();
        }
    }
}

命名空间

  • C#程序是利用命名空间组织起来的。为了有效地组织C#程序中的类型并保证其唯一性,C#引入了命名空间的概念,从而最大限度地避免类型重名错误。

  • 命名空间是一种逻辑组合。C#程序中类型由指示逻辑层次结构的完全限定名(fully qualified name)描述。例如,CSharpBook. Chapter01. HelloWorld表示CSharpBook命名空间的子命名空间Chapter01中的HelloWorld类

  • 声明格式如下:

  •                                 namespace 命名空间名称
    
  • 一个源程序文件中可以包含多个命名空间;同一命名空间可以在多个源程序文件中定义。命名空间可以嵌套。同一命名空间中不允许定义重名的类型

使用方法

  • 访问命名空间:[.].类型
    using 命名空间 可以非限定方式直接引用该命名空间中的类型

  • 命名空间别名:using 别名 = 命名空间或类型名;
    分别用“别名::类型”,“别名.方法”进行调用

  • 全局命名空间:使用全局命名空间限定符global::

命名空间举例

// compile:csc AliasNSTest.cs  ->  AliasNSTest.exe
using AliasNS = System;
using AliasClass = System.Console;
namespace CSharpBook.Chapter01
{
    class AliasNSTest
    {
        static void Main()
        {   
            // AliasNS.Console.WriteLine("Hi 1");  // 错误!
              AliasNS::Console.WriteLine("Hi 2"); // OK
            // AliasClass::WriteLine("Hi 3"); // 错误!
              AliasClass.WriteLine("Hi 4"); // OK
              AliasClass.ReadKey();
        }
    }
}
// compile:csc GlobalNSTest.cs  ->  GlobalNSTest.exe 
using System;
namespace CSharpBook.Chapter01
{
    class GlobalNSTest
    {
        // 定义一个名为'System'的新类,为系统制造麻烦.
        public class System { }
        // 定义一个名为'Console'的常量,为系统制造麻烦.
        const int Console = 7;
        const int number = 66;
        static void Main()
        {
            // Console.WriteLine(number);  // 出错:访问TestApp.Console
            global::System.Console.WriteLine(number);   //OK!访问正确的命名空间中的类型
            global::System.Console.ReadKey();
        }
    }
}

注释

  • C#使用传统的C风格注释方式
    单行注释使用“// … ”
    多行注释使用“/* … /”
    内联注释:多行注释放在一行代码中,该行中置于“/
    ”和“*/”字符之间

  • XML文档注释
    以3个斜杠(///)开头的单行注释

Main方法

  • Main方法声明
  • C#的可执行程序必须包含一个Main方法,用于控制程序的开始和结束
  • C#中所有的Main方法都是静态的,使其不必依赖于类的实例对象而执行
  • 如果有多个Main方法,可以使用/main选项,其后跟Main方法所属类的全名(包括命名空间),明确告诉编译器将哪个方法作为程序的入口点

在这里插入图片描述

命令行参数

Main方法的参数是表示命令行参数的String数组
通过测试args.Length属性来检查参数是否存在
args[0]表示第一个参数,args[1]表示第二个参数

在这里插入图片描述

Main返回值

Main方法可以是void类型,也可以返回整型值int。如不需Main返回值,可用void使代码变简洁

控制台输入和输出

  • System.Console类
    表示控制台应用程序的标准输入流、输出流和错误流

  • 格式化输出:
    Console.WriteLine(复合格式字符串, 输出对象列表);

  • System. Console类常用方法
    在这里插入图片描述

例子

using System;
namespace CSharpBook.Chapter01
{
    class ConsoleIO
    {
        static void Main(string[] args)
        {
           Console.Clear();                      //清屏
           Console.Write("请输入您的姓名:");    //提示输入
           String s = Console.ReadLine();          //读取1行,以回车结束
           Console.Beep();                      //提示音
           Console.WriteLine("欢迎您!" + s);     //输出读取的内容
           Console.Read();                      //按回车键结束
        }
    }
}

格式化

//Console.WriteLine(“(C) Currency: {0:C}\n(E) Scientific:{1:E}\n”, -123, -123.45f);

using System;
namespace CSharpBook.Chapter01
{
    class ComFormat
    {
       static void Main(string[] args)
       {
          Console.WriteLine("{0:C3}", 12345.6789); // 显示: ¥12,345.679
          Console.WriteLine("{0:D8}", 12345);     // 显示: 00012345
          Console.WriteLine("{0:E10}", 12345.6789); // 显示: 1.2345678900E+004
          Console.WriteLine("{0:F3}", -17843);      // 显示:  -17843.000
          Console.WriteLine("{0:00000.000}", 123.45);// 显示: 00123.450
          Console.WriteLine("{0:#####.###}", 123.45); // 显示: 123.45
          DateTime date1 = new DateTime(2014, 4, 10, 6, 30, 0);
          Console.WriteLine(date1.ToString("yyyy/MM/dd hh:mm:ss")); //显示: 2014/04/10 06:30:00
          Console.ReadKey();
       }
    }
}

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

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

相关文章

复杂分数 马蹄集

复杂分数 难度:白银 0时间限制:1秒 巴占用内存:64M 编写程序连续输入a1、a2、、a5,计算下列表达式的值并输出。本题不考虑输 入0,负数或者其他特殊情况。 1十1中 al 3 4 格式 输入格式:输入整型,空格分隔。…

Go语言学习(二) 函数

文章目录函数go函数基本语法go不支持重载go中支持可变参数函数 go函数基本语法 先来看看go中函数的基本使用 package mainimport "fmt"/* func 函数名(形参列表) (返回值类型列表) {执行语句..return 返回值列表 } */ //自定义函数:功能:两…

实验三:多种影响因素下购房方案的比较

根据呼文军[1]等建立的购房决策数学模型式(1)[1],通过对影响购房的多个因素进行科学地分析、比较,从若干备选购房方案中做出最佳的选择。 QP*WT (1) 在文章的“实例分析”中,假设…

Kubeadm搭建kubernetes(k8s)集群

目录 一、集群介绍 1、集群搭建方法 二、集群部署 环境配置 所有节点,关闭防火墙规则,关闭selinux,关闭swap交换 node02(192.168.137.30) node01(192.168.137.20) ​编辑 master&#…

单链表经典例题

LeetCode题解移除链表元素反转链表合并两个有序链表移除链表元素 题目描述: ➡️挑战链接⬅️、 分析: 该题是要求我们删除指定元素,那么我们就定义一个cur指针去遍历整个链表就好了,每当我们遇到cur->valval;等于特定值的时…

【PTA-训练day3】L2-014 列车调度 + L1-009 N个数求和

目录 L2-014 列车调度 - 二分贪心 1、java版 - 运行超时 2、c版 L1-010 比较大小 - 10 L1-015 跟奥巴马一起画方块 - 15 L1-009 N个数求和 - 20 java 欧几里得求最大公约数gcd L2-014 列车调度 - 二分贪心 PTA | 程序设计类实验辅助教学平台 如果当前序号比火车队列末…

最流行的 6 款 Python 解释器

有人说:一个人从1岁活到80岁很平凡,但如果从80岁倒着活,那么一半以上的人都可能不凡。 生活没有捷径,我们踩过的坑都成为了生活的经验,这些经验越早知道,你要走的弯路就会越少。 Python 是最流行的编程语言…

双向长短期记忆网络(BiLSTM)详解

双向长短期记忆网络(BiLSTM)详解 一、前言 在学习BiLSTM之前,首先需要对RNN和LSTM有一定的了解,可以参考本人的博客:详细讲解RNNLSTMTree_LSTM(Tree-Long Short Term Memory)基于树状长短期记忆…

22、短信登录(隐藏用户的敏感信息)

短信登录(隐藏用户的敏感信息) 我们返回给前端的信息太多了 问题:为什么我们这里全返回了呢? 我们这里是直接从userHoler里获取用户后就直接返回。 所以我们冲userHoler里取出来的信息就是完整的。 2、userHoler从哪里来&#x…

RSA与AES加密

目录 一、非对称加密和RSA 1.非对称秘钥 2.RSA加密的核心 3.Python中实现RSA加密解密 二、HTTPS通信过程 三、对称加密和AES 1.AES简介 2.Python中实现AES加解密 一、非对称加密和RSA 1.非对称秘钥 https://blog.csdn.net/gao131360144/article/details/79966094HTTPS&…

北理工嵩天Python语言程序设计笔记(6 函数和代码复用)

前言 本文是对《北理工 嵩天/黄天宇/礼欣 Python语言程序设计》的学习笔记,供自己查阅使用。 文章目录 北理工嵩天Python语言程序设计笔记(目录)北理工嵩天Python语言程序设计笔记(2 Python基本语法元素)北理工嵩天…

3GPP R17空闲态省电特性

Paging Early Indication 为了进一步降低空闲态UE监听PDCCH的功耗,R17提出Paging Early Indication(PEI)方案。方案的主要思想是在PO(Paging Occasion)之前插入一个PEI-O(PEI Occasion),UE在解调到PEI信息之后,再确定是否需要解调PO信息。其中…

FPGA帧差算法实现图像识别跟踪,Verilog代码讲解全网最细,提供两套工程源码

之前我写过一篇关于FPGA帧差算法实现图像识别跟踪的文章,可以参考一下FPGA帧差算法实现图像识别跟踪 但那篇文章讲得不够细,这里讲得细一点: 运动目标检测原理:先将RGB图像转为灰度图只取亮度分量y,如果一个物体是运动…

【C++】如何修改set的值

问题&#xff1a;尝试通过begin方法得到的迭代器去修改值&#xff0c;发现会报错。 set<string> st{"hello", "world", "good"}; set<string>::iterator it st.begin(); *it "test"; 原因&#xff1a;我们可以在源码里…

三层交换机(三层配置基础命令)

作者介绍&#xff1a; ♥️作者&#xff1a;小刘在C站 ♥️每天分享课堂笔记&#xff0c;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的绽放。 目录 一.什么是三层交换机 二.为什么使用三层交换机 三.层交换机的原理 1.传统的mls 2.快速转…

文件的基本操作

文章目录创建文件删除文件打开文件关闭文件读文件写文件这些基本功能都是操作系统提供给应用程序的系统调用创建文件 提供的参数 所需的外存空间大小文件的存放路径文件名&#xff08;操作系统会有对应的默认名&#xff09; 操作系统做的工作 在外存中找文件所需的空间——空闲…

Python趣味算法入门 - 百钱百鸡

问题描述 中国古代数学家张邱建在他的《算经》中提出了一个著名的“百钱百鸡问题”&#xff1a;一只公鸡值五钱&#xff0c;一只母鸡值三钱&#xff0c;三只小鸡值一钱&#xff0c;现在要用百钱买百鸡&#xff0c;请问公鸡、母鸡、小鸡各多少只&#xff1f; 分析 这也是经典问…

所见即所得即MySQL函数

✨✨hello&#xff0c;愿意点进来的小伙伴们&#xff0c;你们好呐&#xff01; &#x1f43b;&#x1f43b;系列专栏&#xff1a;【MySQL初阶】 &#x1f432;&#x1f432;本篇内容&#xff1a;MySQL函数的详解 &#x1f42f;&#x1f42f;作者简介:一名现大二的三非编程小白&…

【Spring】核心部分之IOC:通过列举代码例子,从底层刨析,深入源码,轻轻松松理解Spring的核心IOC,IOC有这一篇足以

IOC一&#xff0c;概念和原理1.概念&#xff1a;控制反转2.原理&#xff1a;&#xff08;xml解析&#xff0c;工厂模式&#xff0c;反射&#xff09;3.IOC接口&#xff1a;两个主要容器实现类&#xff08;加载xml配置文件&#xff09;二&#xff0c;操作Bean管理1.基于 xml 配置…

React - 实现瀑布流加载

React - 实现瀑布流加载一. 瀑布流实现1.1 处理重复请求问题一. 瀑布流实现 先来看下原本的效果&#xff0c;一次性加载完所有的信息然后展示&#xff1a; 其次&#xff0c;我们需要去监听这个滚轮的滚动事件&#xff0c;那么React页面就可以添加一个监听器&#xff1a; use…