博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#小知识
阅读量:4352 次
发布时间:2019-06-07

本文共 2725 字,大约阅读时间需要 9 分钟。

1、<< 、<<= 、>> 、>>的用法以及区别 

<<(左位移):

例如   int a = 2 ;    b = a << n ;  如果 n=3,那么 b=16

左移n位实际上相当于乘以2的n次方:

for(int i =1;i<=n;i++)

  a = a * 2 ;

>>(左位移):

右移n位实际上相当于被2的n次方整除:

for(int i =1;i<=n;i++)

  a = a / 2 ;

<<=:

a<<=1等价于a=a<<1,就是将a按位左移后将值赋值给a

a<<1只是将a按位左移,并不改变a的值

2、Linq表达式

var b = array.Where(i => i > 0).OrderBy(i => i).Select(i => "[" + i + "]");            foreach (string i in b)            {                Console.WriteLine(i + "   ");            }            var shen = from i in array                       where i > 0                       orderby i                       select "[" + i + "]";            int[] values = { 1, 2, 5, 2, 3, 5, 5, 3, 4, 3, 3 };            var all = from i in values                      group i by i into g                      orderby g.Count() descending                      select new { 数字 = g.Key, 数量 = g.Count() };            foreach (var q in all.Take(3))            {                Console.WriteLine(q.数字 + "==" + q.数量);            }

 3、使用csc.exe编译器

csc.exe编译器一般目录在c:\windows\Microsoft.NET\Framework\v3.5下,但是一般在环境变量下设置好了,然后就可以在dos下编译你的文件了!

csc d:\test.cs 即可!就会生成对应的exe文件了,一般是控制台应用程序!

4、 C#中的#if, #elif, #else和#endif预处理指令

#if, #elif, #else, #endif

#if  condition1      code1#elif condition2      code2...#elif conditionn      coden#else      code(n+1)#endif

当编译器遇到#if语句后,将先检查相关的符号是否存在,如果符号存在,就只编译#if块中的代码。否则,编译器会去判断#elif的条件,直到遇到匹配的#endif指令为止。

5、C#内置委托EventHandler、Func、Action

EventHandler:

public delegate void EventHandler(object sender, EventArgs e);

Func:

public delegate TResult Func<TResult>();

public delegate TResult Func<T, TResult>(T arg);

public delegate TResult Func<T1, T2, TResult>(T1 arg1, T2 arg2);

Action:

public delegate void Action();

6、获得控制台应用程序的输出

class Program    {        static void Main(string[] args)        {            Console.WriteLine("success1");            Console.WriteLine("success2");        }    }
private void Start()    {        ProcessStartInfo startInfo = new ProcessStartInfo(@"G:\VSProjects\GetConsole\GetConsole\bin\Debug\GetConsole.exe");        startInfo.UseShellExecute = false;        startInfo.RedirectStandardOutput = true;        startInfo.RedirectStandardError = true;        Process p = Process.Start(startInfo);        p.WaitForExit();        string output = p.StandardOutput.ReadToEnd();        print("输出的成功信息为 = " + output);        string err = p.StandardError.ReadToEnd();        print("输出的错误信息为 = " + output);    }

ProcessStartInfo startInfo = new ProcessStartInfo(path); startInfo.UseShellExecute = false; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = true; startInfo.CreateNoWindow = true;//不显示窗口 startInfo.Arguments = "123 content abc";//向main函数传参数

 

转载于:https://www.cnblogs.com/MrZivChu/p/xiaozhishi.html

你可能感兴趣的文章
PostMessage 解析
查看>>
Java语法基础(一)
查看>>
as3 sort
查看>>
hdu 2680 Choose the best route Dijkstra 虚拟点
查看>>
26. Remove Duplicates from Sorted Array java solutions
查看>>
[bzoj1185] [HNOI2007]最小矩形覆盖
查看>>
全景图制作详解
查看>>
React之todo-list
查看>>
cocoapods降级版本
查看>>
MYSQL复习笔记4-基本SQL语句
查看>>
C#&java重学笔记(函数)
查看>>
14软件G2班
查看>>
bzoj 1977 [BeiJing2010组队]次小生成树 Tree
查看>>
bzoj 2119 股市的预测——枚举长度的关键点+后缀数组
查看>>
maven:新建的maven工程需要添加一下插件
查看>>
关于iOS自定义控件:在view上实现事件和代理
查看>>
[扫描线]POJ2932 Coneology
查看>>
全局变量与全局静态变量的区别
查看>>
EMC队列 发件人为空 From Address: <>
查看>>
多路复用IO模型 IO multiplexing
查看>>