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

改变应用图标

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();//普
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲁氏新之助

激励一个菜鸟的写作,哈哈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值