C#学习....

news2024/9/21 2:48:19

1.基础

//引用命名空间

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

//项目名或者命名空间
namespace _01_MY_First_Demo
{
    //Program类
    class Program
    {
        //程序的主入口或者Main函数
        static void Main(String[] agrs)
        {
            Console.WriteLine("Hello, World11!");
        }
    }
}

2.打印日志

 Console.WriteLine("Hello, World11!");
//让程序暂停
Console.ReadKey();
---------------------------------------
//输入数据
string  name=  Console.ReadLine();
Console.WriteLine(name);

3.注释

//  1.单行注释





2.多行注释 

/*
            Console.WriteLine("Hello, World11!");
            Console.WriteLine("Hello, World11!");
            Console.WriteLine("Hello, World11!");
            Console.WriteLine("Hello, World11!");
            Console.WriteLine("Hello, World11!");
            Console.WriteLine("Hello, World11!");*/



/// 3.文档注释 

 /// <summary>
 /// 这个方法的作用
 /// </summary>
 /// <param name="agrs">第一个参数</param>

4.快捷键

ctrl+k+c :注释所选代码

ctrl+k+u :取消注释所选代码

ctrl+k+d  :快速对齐代码

ctrl+j  :快速智能提示



 折叠没用代码

    #region  没用的代码
            //Console.ReadKey();
            //Console.ReadKey();
            //Console.ReadKey();
            //Console.ReadKey();
            //Console.ReadKey();
            #endregion

5.常见数据类型

在C#中,有以下常见的数据类型:

1. 值类型(Value Types):
   - 整数类型:`int`, `long`, `short`, `byte`, `sbyte`, `uint`, `ulong`, `ushort`
   - 浮点类型:`float`, `double`
   - 字符类型:`char`
   - 布尔类型:`bool`
   - 十进制类型/金钱类型:`decimal`

int A0 = 3;
float A1 = 520.1314131413141314F;
double A2 = 520.1314131413141314;
//用来存储金钱,后面要加个M
decimal A3 = 520.1314131413141314M;
Console.WriteLine(A1);
Console.WriteLine(A2);
Console.WriteLine(A3);

//用来存储单个字符,需要用单引号引起来。
char ch1 = 'B';//定义字符使用单引号
char ch2 = '\x0042';//使用十六进制编码来表示字符B
Console.WriteLine(ch1);
Console.WriteLine(ch2);
 

2. 引用类型(Reference Types):
   - 字符串类型:`string`
   - 数组类型:`int[]`, `string[]`, 等等
   - 类类型:自定义的类、结构体、枚举等
   - 接口类型:`interface`
   - 委托类型:`delegate`




3. 空类型(Nullable Types):
   - 可以为null的值类型,通过在值类型后面加上`?`来声明,例如:`int?`, `bool?`, `double?`

??用于判断一个变量在为null的时候返回一个指定的值

double? num1 = null;
double? num2 = 3.14157;
double num3;
num3 = num1 ?? 5.34;


此外,C#还提供了一些特殊的数据类型,如:
- `object`:所有类型的基类。
- `dynamic`:表示动态类型,可以在运行时进行类型检查和绑定。
- `var`:隐式类型,由编译器根据赋值语句自动推断类型。


占位符

 int n1 = 10;
  int n2 = 20;
  int n3 = 30;
  Console.WriteLine("第一个数字是{0},第二个数字是{2},第三个数字是{1}", n1, n2, n3);
  Console.ReadKey();

 

6.占位符

1.c# 占位符
1.占位符的使用方法:先挖坑,再填坑。
注意点:
2.(1)挖了几个坑,就应该填几个坑,如果多填了,没效果,少填了,报异常。
(2)输出顺序,按照挖坑顺序。
3.代码示例:
(1)这个例子不仅展示了占位符的使用方法,也展示了占位符的输出顺序是按照挖坑顺序来的。  

int n1 = 10;
  int n2 = 20;
  int n3 = 30;
  Console.WriteLine("第一个数字是{0},第二个数字是{2},第三个数字是{1}", n1, n2, n3);
  Console.ReadKey();

​7.常用转义字符

(1)转义字符指的就是一个'\'+一个特殊的字符,组成了一个具有特殊意义的字符。
(2)常用的转义字符
\n:表示换行
\":表示一个英文半角的双引号
\t:表示一个tab键的空格
\b:表示一个退格键(相当于删除键),放到字符串的两边没有效果
\r\n:windows操作系统不认识\n,只认识\r\n,相当于换行
\\:表示一个\
@符号:
(1):取消\在字符串中的转义作用,就是不转义
(2):将字符串按照原格式输出。


Console.WriteLine("您好明天");
Console.WriteLine("您好\n明天");
Console.WriteLine("你想说什么\"\"");
Console.WriteLine("Hello\tWorld");
Console.WriteLine("别做\b梦了");
Console.WriteLine("\b别做梦了");
Console.WriteLine("别做梦了\b");
string str = "阳光明媚\n风和日丽";           System.IO.File.WriteAllText(@"C:\Users\86178\Desktop\1019.txt", str);
string path = "C:\\Users\\86178\\Desktop\\1019.txt";
string path1 = @"C:\Users\86178\Desktop\1019.txt";
Console.WriteLine(path);
Console.WriteLine(path1);
Console.WriteLine(@"阳光明媚
                风和日丽");
Console.ReadKey();
 

8.类型转换

1.显式类型转换(强制类型转换):
int intValue = 10;
double doubleValue = (double)intValue;
 
2.隐式类型转换:
int intValue = 10;
double doubleValue = intValue;
 
3.使用Convert类进行类型转换:
int intValue = 10;
string stringValue = Convert.ToString(intValue);

//将 String 表达式转换成 double 类型
String sVaule;
double dVale;
dVale= Convert.ToDouble(sVaule);

//将 String 表达式转换成 bool 类型
String MyString = " true ";
bool MyBool = Convert.ToBoolean( MyString );


 
4.使用Parse方法进行字符串转换:
string stringValue = "10";
int intValue = int.Parse(stringValue);
 
5.使用TryParse方法进行安全的字符串转换:
string stringValue = "10";
int intValue;
bool success = int.TryParse(stringValue, out intValue);
if (success)
{
    // 转换成功
}
else
{
    // 转换失败
}
 
 
6.使用ToString方法将基本类型转换为字符串:
int intValue = 10;
string stringValue = intValue.ToString();
 

9.运算符

11

10.逻辑结构

-------------------if/else--------------------------


if(布尔表达式)
{
语句块 1;
}else{
语句块 2;
}




int num = 10;

if (num > 0)
{
    Console.WriteLine("Number is positive");
}
else
{
    Console.WriteLine("Number is non-positive");
}

---------------------------
if(布尔表达式 1)
{
语句块 1;
}else if(布尔表达式 2){
语句块 2;
}
…
else{
语句块 n;
}

----------------swich/case--------------


int day = 3;

switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    case 3:
        Console.WriteLine("Wednesday");
        break;
    case 4:
        Console.WriteLine("Thursday");
        break;
    case 5:
        Console.WriteLine("Friday");
        break;
    default:
        Console.WriteLine("Weekend");
        break;
}
---------------while循环---------
int i = 0;

while (i < 5)
{
    Console.WriteLine(i);
    i++;
}

--------do/while-------------------
int i = 0;

do
{
    Console.WriteLine(i);
    i++;
} while (i < 5);

------------for循环---------------
 for (int i1 = 1; i1 <= 9; i1++)
 {
               
            }

11.异常捕获

结构组成

try
{
 <可能出现异常的代码>
}
catch
{
 <出现异常后执行的代码>
}
finally
{
 <不管有没有异常都要执行的代码(可选)>
}

------------------------------
using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            try
            {
                int n = int.Parse(s);
                Console.WriteLine(n);
            }
            catch
            {
                Console.WriteLine("输入的不是一个整数");
            }
        }
    }
}

12.三元表达式

Console.WriteLine("请输入第一个数字:");
int n1 = int.Parse(Console.ReadLine());
Console.WriteLine("请输入第二个数字:");
int n2 = int.Parse(Console.ReadLine());

int n3 = n1 > n2 ? n1 : n2;

Console.WriteLine(n3);
Console.ReadKey();
 

13.常量

所谓常量,就是在程序的运行过程中其值不能被改变的量。常量的类型也可以是任何一种C#的数据类型。常量的定义格式为:
  const 常量数据类型 常量名(标识符)=常量值;


    const double PI=3.1415926;
  const string VERSION=“Visual Studio 2010”;

14.枚举


//枚举声明,如果不声明值,会默认从0 1 2 3开始排列
 public enum MyColors
    {
        Yellow = 1,
        Green = 2,
        Red = 4,
        Blue = 8
    }

//枚举引用
  MyColors  ss=        MyColors.Yellow;
  Console.WriteLine(ss);
--------------
MyColors ss =        MyColors.Yellow;
//强制类型转换,获取数值
 int sd = (int)ss;
 Console.WriteLine(sd);

15.结构

//struct 语句为程序定义了一个带有多个成员的新的数据类型。例如,您可以按照如下的方式声明 Book 结构:
//可以帮助我们一次性声明多个不同类型的变量
//变量在程序运行期间只能存储一个值,而字段可以存储多个值。



struct Books
{
   public string _title;//字段,不是变量,加下划线
   public string _author;
   public string _subject;
   public int _book_id;
};  



 Books b;
 b._title = "1";
 b._author = "2";

 Books A;
 A._title = "1";
 A._author = "2";

 16.数组

//1.数组是一个引用类型,所以需要使用 new 关键字来创建数组的实例
double[] balance = new double[10];
string[] sarray = { "Hello", "From", "Tutorials", "Point" };
//2.数组赋值

//2.1索引赋值
double[] balance = new double[10];
balance[0] = 4500.0;

//2.2声明时赋值
double[] balance = { 2340.0, 4523.69, 3421.0};
//2.3也可以省略数组的大小
int [] marks = new int[] { 99, 98, 92, 97, 95};

3.访问数组元素
3.1通过索引访问
double salary = balance[9];
3.2遍历数组for循环 
           int[] n = new int[10];//声明一个大小是10的数组
            //初始化数组
            for(int i=0;i<10;i++)
            {
                n[i] = i + 100;
            }
3.3遍历数组,foreach
          foreach(int j in n)
            {
                int i = j - 100;
                Console.WriteLine("n[{0}]={1}", i, j);
            }
 

 

17.方法/函数

[public] [static] 返回值类型 方法名字([参数列表])
{
	方法体
}


-------------------------------
public static int MaxArr(int[] a)
{
    int temp = Int32.MinValue;
    for (var i = 0; i < a.Length; i++)
    {
        if (a[i]>temp)
        {
            temp = a[i];
        }      
    }
    return temp;
}

//方法调用,在main函数中调用
int result = MaxArr(new int[]{20,0,-10,30,25,-100});
Console.WriteLine("数组中最大值为:"+result);
//不自动关闭控制台,等待输入
Console.ReadLine();

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

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

相关文章

大模型是什么?大模型可以在哪些场景应用落地?

大模型是什么&#xff1f;大模型是指模型具有庞大的参数规模和复杂程度的机器学习模型。在深度学习领域&#xff0c;大模型通常是指具有数百万到数十亿参数的神经网络模型。 大模型是指模型具有庞大的参数规模和复杂程度的机器学习模型。在深度学习领域&#xff0c;大模型通常是…

实验三十、压控振荡电路的测量

一、题目 利用 Multisim 分析图1所示电路&#xff0c;测试各项指标参数。 图 1 压控振荡电路 图1\,\,压控振荡电路 图1压控振荡电路 二、仿真电路 仿真电路如图2(a)所示&#xff0c;其中 A 1 \textrm A_1 A1​ 采用通用型集成运放 LM324AJ&#xff0c; A 2 \textrm A_2 A2​…

Java进阶(2)——结合源码深入理解final关键字,修饰数据,方法,类

目录 引出深入理解final关键字final修饰数据基本数据类型对象的引用空白final final修饰方法final修饰类总结 引出 1.在java源码中较多使用final修饰数据&#xff0c;比如ArrayList的初始长度&#xff1b; 2.final关键字修饰对象的引用的特点理解&#xff1b; 3.了解一下空白fi…

地址在数据线和地址线上怎么传?

如下图所示&#xff0c;对于地址总线&#xff0c;其传输方向是单向的&#xff0c;是只能由CPU发出&#xff0c;即只能用于CPU选择主存地址或I/O端口地址&#xff0c;并不能从主存或IO端口发到CPU。 相关题目&#xff1a; 在系统总线的数据线上&#xff0c;不可能传输的是&am…

试卷去痕迹app分享,轻松擦除答案痕迹

在考试中&#xff0c;不小心写错答案是常有的事情。如果你是用铅笔写的&#xff0c;那么你可以直接用橡皮擦擦除。但如果你是用钢笔或圆珠笔写的&#xff0c;该怎么办呢&#xff1f;现在有一些APP可以帮助你擦除答案&#xff0c;以下是一些值得尝试的APP分享。 1.拍试卷 拍试卷…

堆叠聚合模型与单独的逻辑回归模型处理非平衡数据的比较

堆叠聚合模型与单独的逻辑回归模型处理非平衡数据的比较 堆叠聚合模型的设计是通过训练多个模型&#xff0c;然后使用原模型&#xff0c;将多个模型的输出结果整合在一起以实现更准确的预测。这叠聚合模型在多个临床场景上都表现出优于单一模型的效能[1]。是构建临床预测模型过…

java之juc二

JMM 请你谈谈对Volatile的理解 Volatile是jvm提供的轻量级的同步机制&#xff08;和synchronized差不多&#xff0c;但是没有synchronized那么强大&#xff09; 保证可见性不保证原子性禁止指令重排 什么是JMM JMM&#xff1a;java内存模型&#xff0c;不存在的东西&#…

UE_移动端测试使用

教程流程&#xff1a; 参照官方文档-android篇&#xff1a; https://docs.unrealengine.com/5.1/zh-CN/android-development-requirements-for-unreal-engine/https://docs.unrealengine.com/5.1/zh-CN/android-development-requirements-for-unreal-engine/ AS下载&#xf…

点云滤波介绍

一、介绍 1、Filtering a PointCloud using a PassThrough filter 2、Downsampling a PointCloud using a VoxelGrid filter 3、Removing sparse outliers using StatisticalOutlierRemoval 4、Projecting points using a parametric model 数据集&#xff1a;链接&#x…

mysql mysql 容器 忽略大小写配置

首先能够连接上mysql&#xff0c;然后输入下面这个命令查看mysql是否忽略大小写 show global variables like %lower_case%; lower_case_table_names 0&#xff1a;不忽略大小写 lower_case_table_names 1&#xff1a;忽略大小写 mysql安装分为两种&#xff08;根据自己的my…

移动端身份证识别技术的应用,告别手动录入证件信息

随着移动互联网的的发展&#xff0c;越来越多的公司都推出了自己的移动APP&#xff0c;这些APP多数都涉及到个人身份证信息的输入认证&#xff08;即实名认证&#xff09;&#xff0c;如果手动去输入身份证号码和姓名&#xff0c;速度非常慢&#xff0c;且用户体验非常差。为了…

MotionBERT:人体运动表征

MotionBERT&#xff1a;A Unified Perspective on Learning Human Motion Representations解析 摘要1. 简介2. Related Work2.1 学习人体运动表征2.2 3D人体姿态估计2.3 基于骨骼的动作识别2.3 人体网格恢复 3. Method3.1 Overview3.2 网络架构Spatial BlockTemporal BlockDual…

MybatisPlus整合p6spy组件SQL分析

目录 p6spy java为什么需要 如何使用 其他配置 p6spy p6spy是一个开源项目&#xff0c;通常使用它来跟踪数据库操作&#xff0c;查看程序运行过程中执行的sql语句。 p6spy将应用的数据源给劫持了&#xff0c;应用操作数据库其实在调用p6spy的数据源&#xff0c;p6spy劫持到…

Python项目中怎么实现异步任务和定时任务

这里写目录标题 一、异步任务:二、定时任务:三、Celery介绍特点:Celery由三部分构成:工作原理:安装Celery选择一个Broker:RabbitMQKafka和RabbitMQ的区别:定义一个任务定义第二个任务定义一个生产者(producer) 来 调用异步任务启动celery服务定义一个获取结果的类定时任…

Activiti6

一、Activiti介绍与搭建开发环境 二、运行官方例子 三、编写第一个Activiti程序 3.1 流程部署 代码 /*** 部署流程* 涉及到的表有&#xff1a; * 1.act_ge_bytearray 两条记录&#xff0c;一条xml数据&#xff0c;一条png图片信息 * 2.act_re_deployment 一条记录 * 3.a…

BBS项目day02、注册、登录(登录之随机验证码)、退出登录、密码加密加盐、首页(导航条、模态框,修改密码)

一、注册 1.注册之前端页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>注册页面</title><!--动态引入文件-->{% load static %}<script src"{% static js/jquery.min.js %…

深度开发者故事 | 华为云API Explorer 自动化运维的得力助手

华为云API Explorer为开发者提供一站式API解决方案统一平台&#xff0c;集成华为云服务所有开放API&#xff0c;支持全量快速检索、可视化调试、帮助文档、代码示例等能力&#xff0c;帮助开发者快速学习API&#xff0c;使用API开发代码实现自动化运维。 体验通道&#xff1a;…

企业数字化时代,数据要素是什么?有什么作用价值?

信息化、数字化社会加速到来&#xff0c;企业纷纷开始布局数字化转型&#xff0c;数字经济将成为未来世界中最为火热的新型经济。 数据报表作为企业数字化转型的代表节点之一&#xff0c;未来会成为数字化企业的基本配置。 要想企业全身心投入数据报表体系建设中&#xff0c;…

个性化定制界面与极简版原装界面:我们为什么选择个性化?

个性化定制界面和极简版原装界面&#xff0c;哪一个你用起来更加顺手呢&#xff0c;相比之下你更喜欢哪一个&#xff1f;来聊一聊原因吧&#xff01; 随着科技的不断发展&#xff0c;人们对于界面设计也有了越来越高的要求。而在界面设计领域&#xff0c;个性化定制界面和极简版…

rust入门系列之Rust介绍及开发环境搭建

Rust教程 Rust基本介绍 网站: https://www.rust-lang.org/ rust是什么 开发rust语言的初衷是&#xff1a; 在软件发展速度跟不上硬件发展速度&#xff0c;无法在语言层面充分的利用硬件多核cpu不断提升的性能和 在系统界别软件开发上&#xff0c;C出生比较早&#xff0c;内…