• 时隔一年多的第一帖,总结一些C#小技巧,不断更新中...


    这些东西是我学编程一开始总结的,有些极为简单,让大家见笑了!可是我以后的知识点估计不是谁都会的啊!

    总而言之,我觉得不管学习什么,应该有记笔记的习惯和持之以恒的毅力。

    1、让程序间隔一段时间。程序停顿1000毫秒再执行下一条语句。

    Thread.Sleep(1000); //1000ms

    2、Split String:Of cos you can split string with Regex instead.

    Strings类:
    public static string[] Split (
     string Expression,
     [OptionalAttribute] string Delimiter,
     [OptionalAttribute] int Limit,
     [OptionalAttribute] CompareMethod Compare
    )
    参数
    Expression
    必选。包含子字符串和分隔符的 String 表达式。
    Delimiter
    可选。用于标识子字符串界限的任何单个字符。如果省略 Delimiter,则采用空格字符 (" ") 为分隔符。
    Limit
    可选。输入字符串应拆分为的子字符串的最大数量。默认值为 –1,指示应在 Delimiter 字符串的每个匹配项处拆分输入字符串。
    Compare
    可选。数值,指示在计算子字符串时要使用的比较方法。请参见值的“设置”。
    返回值
    String 数组。如果 Expression 为零长度字符串 (""),则 Split 返回一个包含零长度字符串的单元素数组。如果 Delimiter 为零长度字符串,或者如果它没有在 Expression 中出现,则 Split 返回一个包含整个 Expression 字符串的单元素数组。

     e.g. string s = "a,3,5.d,s";  string[] sAry = s.Split(',');

     3、ref和out传参区别:

          ref(引用型参数)对方法的数据传递是通过实际值的内存地址来传递的,所以说对其的改变将影响到它实际的内存地址。

          out(输出型参数)同ref一样也不开辟新的内存地址,但是输出型参数的一个特点是在调用方法时不用先初始化,在返回前必须初始化。

    另解: 

    一,相同点:二者都是引用类型变量。   

    二,不同点:见下
     class paramtest
        {
            void testRef(ref int i)
            { i++; }
            void testOut(out int i)
            {
                i = 1; // --(3)
                i++;        
            }
            static void Main(string[] args)
            {
                int pRef = 1; //--(1)
                int pOut; //-(2)
                paramtest p = new paramtest();
                p.testRef(ref pRef );  //使用ref为标志符时,参数变量必须被声明且初始化,如(1)
                Console.WriteLine("pRef={0}",pRef);
                p.testOut(out pOut);
                //使用out 为标志符时,参数变量必须被声明而不需要初始化,如(2)
                //但是在调用的方法体中必须为该变量进行初始化,如(3)
                Console.WriteLine("pOut={0}",pOut);
                Console .Read ();
            }
        } 

    总而言之,如果没有必要在引用前初始化,就用out。

    4、随机数的取法:

    using System;
    namespace MyEx
    {
        public class Demo
        {
            public static void Main(string[] args)
            {
                Random r1 = new Random();//等同于System.Random r1 = new Random();
                int guessnumber1;
                guessnumber1 = r1.Next(30);//最大为30(不包括30)的正整数
                Console.WriteLine("The random1 number is: " + guessnumber1);
                System.Random r2 = new Random();
                double guessnumber2;
                guessnumber2 = r2.NextDouble();//0.0到1.0的double(不包括1)
                Console.WriteLine("The random2 number is: " + guessnumber2);
                Random rnd = new Random();
                Byte[] b = new Byte[10];
                rnd.NextBytes(b);//1-255的字节数组Byte[]
                Console.WriteLine("The Random bytes are: ");
                for (int i = 0; i < 10; i++)
                {
                    Console.Write(i);
                    Console.Write(":");
                    Console.WriteLine(b[i]);
                }
            }
        }
    }

  • 相关阅读:
    2020 CCPC-Wannafly Winter Camp Day6 ---I. 变大!
    Codeforces 1295F Good Contest
    2020 CCPC-Wannafly Winter Camp Day6 ---A. Convolution
    centos下kubernetes+flannel部署(旧)
    无网络centos7中部署kubernetes
    利用Openvswitch实现不同物理机中的Docker容器互连
    docker-py的配置与使用
    通过Docker配置DNS服务器
    在 OS X Yosemite 中部署Mesos
    Docker初识
  • 原文地址:https://www.cnblogs.com/clark/p/1376924.html
Copyright © 2020-2023  润新知