• c#基础二



    对VS2012的理解


    1、导入命名空间
    命名空间就是类的"文件夹"。类就是"文件夹"中的文件。需要导入命名空间
    添加引用:
    如果我需要在一个项目中,访问另一个项目中的某一个类
    --->添加对另一个项目的引用
    --->导入命名空间


    2、静态和非静态
    静态成员:被static修饰
    实例成员:不被static修饰
    静态成员先于实例成员被加载到内存中,只有创建了对象,才有实例成员。
    静态类中只能存在静态成员
    调用:
    静态成员调用:
    类名.静态成员名;
    实例成员调用:
    实例名.实例成员;(实例就是我们的对象)
    什么时候使用静态?
    ---->作为工具类
    ---->在整个项目中资源共享,正因为它是资源共享的,所以静态成员必须要等到整个项目都结束的时候
    才会被资源释放。
    在我们的项目中应该尽可能的少使用静态成员。
    继承是创建对象的过程。

    3、类库
    .dll文件,我们使用类库来帮助我们封装一些常用的功能



    4、值类型和引用类型
    值类型:int double char bool decimal struct enum
    引用类型:string 数组 自定义类 接口 委托

    值类型的值存储在内存的栈上,引用类型的值存储在堆中。
    栈上存储数据的效率要高于堆。

    值传递:把值类型作为参数传递,把值本身进行传递。
    注意:
    ref可以把值传递改变为引用传递。
    引用传递:把引用类型的值作为参数传递,传递的是引用。


    5、字符串的学习
    重要特性:
    不可变性,我们不管对字符串做什么操作,都会在内存中产生一块新的实例。
    驻留池
    我们可以将一个字符串看作是char类型的只读数组。

    字符串常用类的学习

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace _09字符串的常用方法
    {
        class Program
        {
            static void Main(string[] args)
            {
                //string s = null;
                //if (string.IsNullOrEmpty(s))
                //{
                //    Console.WriteLine("是的");
                //}
                //else
                //{
                //    Console.WriteLine("不是");
                //}
    
                //string str = "abcdefg";
    
                //Console.WriteLine(str[5]);
                //Console.ReadKey();
                //char[] chs = str.ToCharArray();
                //chs[2] = 'z';
                //foreach (char item in chs)
                //{
                //    Console.WriteLine(item);
                //}
                ////char数组---->字符串
                //str = new string(chs);
    
                //string str = "abCDEfg";
                //Console.WriteLine(str.ToUpper());
                //Console.WriteLine(str.ToLower());
    
                //string s1 = "aBc";
                //string s2 = "Abc";
                //if (s1 == s2)
                //{
                //    Console.WriteLine("相等");
                //}
                //else
                //{
                //    Console.WriteLine("不相等");
                //}
                //Console.ReadKey();
    
    
                //if (s1.Equals(s2))
                //{
                //    Console.WriteLine("相等");
                //}
                //else
                //{
                //    Console.WriteLine("不相等");
                //}
                //Console.ReadKey();
                //Console.ReadKey();
    
    
                //string str = "老毕吃了一顿饭,结果老毕火了";
                ////int index = str.IndexOf("老",11);
                ////Console.WriteLine(index);
                //int index = str.LastIndexOf("123");
                //Console.WriteLine(index);
                //Console.ReadKey();
    
    
                //string str = "老毕吃了一顿饭,结果老毕火了";
                //int index = str.IndexOf(",");
                //string strNew = str.Substring(index + 1);
                //Console.WriteLine(strNew);
    
                //string str = "张  ,,--三   ,李,,--四  a  ";
                //string[] strNew = str.Split(new char[] { ',', ' ', '-' },StringSplitOptions.RemoveEmptyEntries);
                ////字符串--->char类型的数组 ToCharArray()
                ////字符串--->string类型的数组
                //Console.ReadKey();
    
                //Trim() TrimEnd() TrimStart()
    
                //string s = "   张   ,,,--    三 ,,,--   ";
    
                //Console.Write(s.Trim(' ',',','-'));
    
    
                //string[] names = { "金秀贤", "金贤秀", "金正日", "金正恩" };
                ////金秀贤|金贤秀|金正日|金正恩
    
                //string res = string.Join("|", 'c', "张三", 100, 3.14, true, 5000m);
                //Console.WriteLine(res);
                //Console.ReadKey();
                //string res = string.Empty;
                //for (int i = 0; i < names.Length - 1; i++)
                //{
                //    res += names[i] + "|";
                //}
                //Console.WriteLine(res + names[names.Length - 1]);
    
                Console.WriteLine("请输入你要回复的内容");
                string contents = Console.ReadLine();
                //判断contents中是否包含敏感词
                if (contents.Contains("老赵"))
                {
                    contents = contents.Replace("老赵", "****");
                }
                Console.WriteLine(contents);
                Console.ReadKey();
            }
        }
    }
    View Code

      字符串的比较

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace _10等号和Equals的区别
    {
        class Program
        {
            static void Main(string[] args)
            {
                //对于string类型而言,不管是等号还是Equals比较的都是值本身。
                //Equals默认比较的是地址,但是我们在自己定义的类中如果用到Equals,都会将Equals进行重写,使之按照我们自己的需求进行比较
                Person p1 = new Person() { Name = "刘德华", Age = 18 };
                Person p2 = new Person() { Name = "刘德华", Age = 18 };
                if (p1.Equals(p2))
                {
                    Console.WriteLine("相等");
                }
                else
                {
                    Console.WriteLine("不相等");
                }
    
    
    
                if (p1==p2)
                {
                    Console.WriteLine("相等");
                }
                else
                {
                    Console.WriteLine("不相等");
                }
    
                string a = "a";
                string b = "a";
    
                if (a.Equals(b))
                {
                    Console.WriteLine("相等");
                }
                else
                {
                    Console.WriteLine("不相等");
                }
    
                if (a==b)
                {
                    Console.WriteLine("相等");
                }
                else
                {
                    Console.WriteLine("不相等");
                }
    
              //  Console.WriteLine(p1.ToString());//这个对象所在的类的命名空间
    
             //   Console.WriteLine(p2.ToString());
                //StringBuilder sb = new StringBuilder();
                //sb.Append("123");
                //sb.Append("张三");
                //Console.WriteLine(sb.ToString());
                Console.ReadKey();
            }
        }
    
        class Person
        {
            public string Name { get; set; }
            public int Age { get; set; }
    
    
            public override bool Equals(object obj)
            {
                Person person = obj as Person;
                if (this.Name == person.Name && this.Age == person.Age)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
    
            public override int GetHashCode()
            {
                return base.GetHashCode();
            }
    
    
            public override string ToString()
            {
                return "哈哈哈,我是被重写的ToString()";
            }
          
        }
    }
    View Code







































































  • 相关阅读:
    线程、进程、死锁
    堆和栈的区别
    用winrar解压时提示无法设置安全数据 拒绝访问的解决方法
    句子迷
    【Sublime Text3】sublime 推荐必备插件与常用快捷键说明
    【计算机科学】知乎上关于计算机科学、程序语言一些有用的回答~(不定期更新)
    【SQL 函数】日期函数、类型转换、字符串函数
    【Sql Server函数】日期时间函数、日期查询今天、昨天、7天内、30天的数据
    【JAVA环境配置免安装】如何由jdk的安装版本改成非安装版本
    【SQL 社区】一些有用的SQL社区!(持续更新~~)
  • 原文地址:https://www.cnblogs.com/cb1186512739/p/9481373.html
Copyright © 2020-2023  润新知