c#基础语法笔记----个人学习笔记

2023-11-02

改变应用图标
1.当“解决方案资源管理器”中有项目选中时,在“项目”菜单上单击“属性”。 
2.选择“应用程序”窗格。
3.从“图标”下拉列表中选择图标 (.ico) 文件。
实例化: new+类名() 例如:user a=new user();
可写:set{return 属性;} 也可直接写作get;
可读:get{属性=value;}  也可直接写作set;
{4
ref 传址  for example:(ref int a);
val 传值  for example:(int a);c#中默认val类型;
out 传值并实例化   for example:(out int a);
}
形参和实参都要加;
重载:形参类型必须不同。
:this    跳转重载构造函数.
for example:
{
     public fun(int a,string b)
     :this(a,b,"sss")
     {
          c=a;
          d=b;
     }
     public fun(int a,string b,string h)  
      {
          c=a;
          d=b;
          j=h;
       }
继承:
{
继承的用base,本体的用this;
private类型不可继承;
禁止继承关键字:sealed;
public sealed class ss
}
checkbox   勾选框
checked   是否勾选
   
清屏:
this.Controls.Clear();
messagebox
返回值为枚举类:
MessageBox.Show("shifuoqingping!") == DialogResult.OK
or
MessageBox.Show("shifuoqingping!") == DialogResult.yes
动态添加控件:
TextBox tb_dtkj = new TextBox();
tb_dtkj.Location = new Point(40, 30);
this.Controls.Add(tb_dtkj);
修改应用图标:icon
  
第一种:Alt + *(按钮快捷键)
  在大家给button、label、menuStrip等控件设置Text属性时在名字后边加&键名就可以了,比如button1.text= "确定(&O)"。就会有快捷键了,这时候按Alt+O就可以执行按钮单击事件。
第二种:Ctrl+*及其他组合键
  在WinForm中设置要使用组合键的窗体的KeyPreview(向窗体注册键盘事件)属性为True;
 添加鼠标右键菜单:contextmenustrip控件
读取文档:
 if (openFileDialog1.ShowDialog()== DialogResult.OK)
            {
                filepath = openFileDialog1.FileName;
                StreamReader ddd = new StreamReader(filepath, Encoding.Default);
                richTextBox1.Text = ddd.ReadToEnd();
                ddd.Close();
             }
 StreamWriter sss = new StreamWriter(filepath, false, Encoding.Default);
其中的false是指对重名文件的操作:覆盖。true则是追加:在原有文档后加入本次文档内容;
#resign
#endresign
折叠代码
wordwrap  自动换行  bool类型
paste()  粘贴方法;
调用程序:
很简单,首先引用命名空间
using System.Diagnostics;
然后在程序中:
//参数里写程序路径。
Process.Start(@"c:\windows\system32\notepad.exe");
  
  
  
打包中的卸载文件:msiexec.exe
制作卸载程序:首先获取主程序的唯一标示符,再在卸载程序的属性中arguments中输入“/x+唯一标示符”。

去除安装程序中的计算机名称文件夹的方式:在安装程序中点击“应用程序文件夹”的属性:defaultlocation,去除中间的大括号部分。即{manufacturer}
动态添加控件:    public Button newPanelButton = new Button();
               Controls.Add(bt);
DateTime dt=DateTime.Now;   
获取当前详细时间
dt 为实例化对象;
字符串比较:
            string s = "我在";
            string d = "你";
            Console.WriteLine(string.Compare(s,s));
            Console.WriteLine(s.CompareTo(d));
            Console.WriteLine(string.Equals(s, d));
 字符串函数:
string aaa = Console.ReadLine();
输入字符串;
加密字符串:
  #region 加密字符串
        /// <summary>
        /// 加密字符串
        /// </summary>
        /// <param name="str">要加密的字符串</param>
        /// <returns>加密后的字符串</returns>
        static string Encrypt(string str)
        {
            DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();   //实例化加解密类对象
            byte[] key = Encoding.Unicode.GetBytes(encryptKey);                 //定义字节数组,用来存储密钥
            byte[] data = Encoding.Unicode.GetBytes(str);                       //定义字节数组,用来存储要加密的字符串
            MemoryStream MStream = new MemoryStream();                          //实例化内存流对象
            //使用内存流实例化加密流对象
            CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
            CStream.Write(data, 0, data.Length);                                //向加密流中写入数据
            CStream.FlushFinalBlock();                                          //释放加密流
            return Convert.ToBase64String(MStream.ToArray());                   //返回加密后的字符串
        }
        #endregion
解密字符串:
 #region 解密字符串
        /// <summary>
        /// 解密字符串
        /// </summary>
        /// <param name="str">要解密的字符串</param>
        /// <returns>解密后的字符串</returns>
        static string Decrypt(string str)
        {
            DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();   //实例化加解密类对象
            byte[] key = Encoding.Unicode.GetBytes(encryptKey);                 //定义字节数组,用来存储密钥
            byte[] data = Convert.FromBase64String(str);                        //定义字节数组,用来存储要解密的字符串
            MemoryStream MStream = new MemoryStream();                          //实例化内存流对象
            //使用内存流实例化解密流对象
            CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);
            CStream.Write(data, 0, data.Length);                                //向解密流中写入数据
            CStream.FlushFinalBlock();                                          //释放解密流
            return Encoding.Unicode.GetString(MStream.ToArray());               //返回解密后的字符串
        }
        #endregion
加密字符串完整版代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace EDString
{
    class Program
    {
        static string encryptKey = "Oyea";          //定义密钥
        #region 加密字符串
        /// <summary>
        /// 加密字符串
        /// </summary>
        /// <param name="str">要加密的字符串</param>
        /// <returns>加密后的字符串</returns>
        static string Encrypt(string str)
        {
            DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();   //实例化加解密类对象
            byte[] key = Encoding.Unicode.GetBytes(encryptKey);                 //定义字节数组,用来存储密钥
            byte[] data = Encoding.Unicode.GetBytes(str);                       //定义字节数组,用来存储要加密的字符串
            MemoryStream MStream = new MemoryStream();                          //实例化内存流对象
            //使用内存流实例化加密流对象
            CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
            CStream.Write(data, 0, data.Length);                                //向加密流中写入数据
            CStream.FlushFinalBlock();                                          //释放加密流
            return Convert.ToBase64String(MStream.ToArray());                   //返回加密后的字符串
        }
        #endregion
        #region 解密字符串
        /// <summary>
        /// 解密字符串
        /// </summary>
        /// <param name="str">要解密的字符串</param>
        /// <returns>解密后的字符串</returns>
        static string Decrypt(string str)
        {
            DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();   //实例化加解密类对象
            byte[] key = Encoding.Unicode.GetBytes(encryptKey);                 //定义字节数组,用来存储密钥
            byte[] data = Convert.FromBase64String(str);                        //定义字节数组,用来存储要解密的字符串
            MemoryStream MStream = new MemoryStream();                          //实例化内存流对象
            //使用内存流实例化解密流对象
            CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);
            CStream.Write(data, 0, data.Length);                                //向解密流中写入数据
            CStream.FlushFinalBlock();                                          //释放解密流
            return Encoding.Unicode.GetString(MStream.ToArray());               //返回解密后的字符串
        }
        #endregion
        static void Main(string[] args)
        {
            Console.Write("请输入要加密的字符串:");                    //提示输入字符串
            Console.WriteLine();                                        //换行输入
            string strOld = Console.ReadLine();                         //记录输入的字符串
            string strNew = Encrypt(strOld);                            //加密字符串
            Console.WriteLine("加密后的字符串:" + strNew);             //输出加密后的字符串
            Console.WriteLine("解密后的字符串:" + Decrypt(strNew));    //解密字符串并输出
            Console.ReadLine();
        }
    }
}
数组创建:
 int[,] arr ={ {1,2},{3,4}}; 
int[] arr = { 1, 2, 3, 45, 56 };
哈希表创建时:必须使用头文件
using System.Collections;
静态方法不能使用this关键字,需使用类名。
实例化结构体:
不使用new关键字;
使用类名 实例化名;
例:struct sss;
构造函数与方法的区别:
1.在C#中,一些都是对象。你要用一个对象,就必须用new来实例化类(static类例外)。当你用new命令时,系统就会自动调用该类的构造函数,做些初始化之类的工作。至于方法,你只能通过手工方式用"object.method()"的方式调用。   
  2.类中可以没有构造函数,因为没有时,系统会自己帮你生成一个不带参量的空的构造函数,它什么事都不会干,只是因为语法的原因而存在。构造函数是可以重载的(还是过载了,我也记不清这两个概念)。这方法你只能看书了,java和c#上都有讲很多的。   

  3.堆(stack)和栈(heap)是存储临时数据的地方,就是我们说的缓存吧。对象的字柄是存在heap中的,基本类型(如int,char等)是存在stack中的。stack的速度比heap快。这方面的资料在《thinking   in   java》和《C#技术内幕(影印版)》中都有说明,《thinking   in   java》中讲得很详细易懂。


提问:构造函数与方法有何区别?
构造函数就是构造方法,有的地方也叫做构造器。
构造函数名与类名相同,方法是自定义的。
*构造方法是一种特殊的方法,作用是初始化成员变量。
public class Test{
   static int i;//定义一个成员变量
   public Test(){
     i = 10;
   }//本句为构造函数,(test和类名相同)作用是初始化成员变量,也可不写,系统将默认一个空的构造函数,如 public Test(){}
   void plus(int x,int y){
     System.out.println(x+y);
   }//定义一个plus方法,意思是传入的数值为int型,传入的个数为2个,传入之后将两个数字相加并打印出。
 public static void main(String[] args){
   Test t = new Test();//实例化一个对象,
   t.plus(1,3);//通过t来调用plus(成员)方法。
 System.out.println(i);//打印出i值
 }
 }

 

 

下面是我师父写的:
构造函数就是一类特殊的方法。 
他不同于其他方法的地方 
一、创建对象时构造函数自动运行,而一般方法必须有调用语句调用才能执行 
二、构造函数与类名必须相同(含大小写) 
三、构造函数不能有返回值类型 
例如 
class A 

   public A(){ }//构造函数名与类名相同,没有返回值类型 
 public string B(){ ...;return "str";}//普通方法要有返回值类型,如无返回值必须写void 
 

A aa=new A();//创建对象aa的时候会自动运行类a的构造函数A() 
aa.B();//普通方法B只
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c#基础语法笔记----个人学习笔记 的相关文章

  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 什么可以解释托管堆上超过 5,000,000 个 System.WeakReference 实例?

    我一直在针对生产 ASP NET Web 应用程序运行负载测试 并且看到在堆上创建了大量 System WeakReference 在大约 15 分钟内 负载管理堆内存已飙升至大约 3GB 并且我有大约 5 000 000 个对 Syste
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • chatgpt赋能python:Python多行注释

    Python 多行注释 在 Python 中 我们经常需要写注释来解释代码或者用于调试 Python 的注释分为单行注释和多行注释 本文主要介绍 Python 中如何多行注释 单行注释 在 Python 中 单行注释以符号 开头 可以写在代
  • Windows的密码生成算法——NTLM算法破解

    文章目录 方法一 Python代码暴力破解 方法二 hashcat工具破解 NTLM CDABE1D16CE42A13B8A9982888F3E3BE hint 密码长度不超过5 数字和符号组成 Windows下NTLM Hash生成原理
  • mysql5.7 免安装版配置

    文章目录 my ini 安装为服务 启动服务命令 移除服务命令 修改 root 账号的密码 初始化数据 my ini 复制 my default ini 或者新建 client port 3306 default character set
  • <mirrorOf>标签用于指定哪些仓库或仓库组需要使用该镜像源

    在Maven配置镜像源时 确实会使用到mirrorOf
  • 使用内核API函数找到I2C和串口控制器发送数据

    我们一般操作I2C或者串口都是编写应用程序调用内核硬件提供的设备节点操作这些硬件的 但是在某个项目中 需要在shutdown的时候往i2c和tty发送数据 发送数据给外置的mcu mcu几秒内就会给cpu断电 所以 这个动作无法在应用层中完
  • 靠谱的车 算法

    靠谱的车 程序员小明打了一辆出租车去上班 出于职业敏感 他注意到这辆出租车的计费表有点问题 总是偏大 出租车司机解释说他不喜欢数字4 所以改装了计费表 任何数字位置遇到数字4就直接跳过 其余功能都正常 比如 23再多一块钱就变为25 39再
  • Amazon S3 REST方式获取Object

    Amazon S3 用REST方式获取文件 具体参见API http docs aws amazon com AmazonS3 latest API RESTObjectGET html 利用C 构建下面的请求 GET ObjectName
  • MSCAN:Learning Deep Context-aware Features over Body and Latent Parts for Person ReID阅读笔记

    Learning Deep Context aware Features over Body and Latent Parts for Person Re identification 作者 DangWei Li等人 CVPR 2017 1
  • DOS常用命令(从入门到精通)

    DOS命令学习 一 DOS使用常识 DOS的概况 DOS Disk Operating System 是一个使用得十分广泛的磁盘操作系统 就连眼下流行的Windows9x ME系统都是以它为基础 常见的DOS有两种 IBM公司的PC DOS
  • 朴素贝叶斯理论推导与三种常见模型

    朴素贝叶斯 Naive Bayes 是一种简单的分类算法 它的经典应用案例为人所熟知 文本分类 如垃圾邮件过滤 很多教材都从这些案例出发 本文就不重复这些内容了 而把重点放在理论推导 其实很浅显 别被 理论 吓到 三种常用模型及其编码实现
  • C++ 和 OpenCV 实现卷积神经网络并加载 Keras 训练好的参数进行预测

    C 和 OpenCV 实现卷积神经网络并加载 Keras 训练好的参数进行预测 一 背景 二 Keras 定义神经网络结构 channels first 与 channels last channels first 与 channels l
  • Sourcetree 打开闪退怎么处理

    只需要把箭头指向的SourceTree exe Url 3vynpq3lkfkc3vf35ldq2wva2cs3o2zs文件删除 如果是多个一并删除 只留一个SourceTree文件夹即可
  • WebService 与 SOAP、WSDL、UDDI

    什么是WebService Web Services 是一种基于组件的软件平台 是面向服务的Internet 应用 Web Services 是应用于Internet 的 而不是限于局域网或试验环境 这要求提出的Web Services 框
  • 微服务2-nacos 配置中心

    1什么是配置中心 在微服务架构中 当系统从一个单体应用 被拆分成分布式系统上一个个服务节点后 配置文件也必须跟着迁移 分割 这样配置就分散了 不仅如此 分散中还包含着冗余 如下图 2为什么要使用配置中心 配置中心将配置从各应用中剥离出来 对
  • Unity 游戏框架搭建 2017 (五) 简易消息机制

    什么是消息机制 23333333 让我先笑一会 为什么用消息机制 三个字 解 耦 合 我的框架中的消息机制用例 1 接收者 Receiver cs using UnityEngine namespace QFramework Example
  • 如何运行ImageMagick的命令行工具

    在http www imagemagick org script index php网站下载相应的执行文件 这里以下载ImageMagick 6 6 5 10 Q16 windows static exe为例说明 将ImageMagick
  • spring集成kafka并对消息进行监听

    spring集成kafka 文章目录 spring集成kafka kafka本地安装启动 pom文件 生产配置 消费者配置 创建topic工具类 生产业务 消费业务 消息接收类 监听类 业务处理 异步 同步 ONEWAY 需要依赖zooke
  • layuiAdmin侧边栏菜单刷新保持当前页面

    layuiadmin框架 每次刷新整个页面 都会回到首页 现在想保持在当前页面 layuiAdmin侧边栏菜单刷新保持当前页面 利用缓存来处理 供自己参考如下 layui config base ROOT homeStatic layuia
  • [移动通讯]【Carrier Aggregation-4】【LTE-4】

    前言 推荐两个在线工具 UECapabilityInformation Decoder https www sqimway com ue capa php FGI Decoder http howltestuffworks blogspot
  • c#基础语法笔记----个人学习笔记

    改变应用图标 1 当 解决方案资源管理器 中有项目选中时 在 项目 菜单上单击 属性 2 选择 应用程序 窗格 3 从 图标 下拉列表中选择图标 ico 文件 实例化 new 类名 例如 user a new user 可写 set ret