C#语言不常用语法笔记
只看过3天C#语法书,了解个大概,与C++等不同之处,或者看开源遇到一些奇异用法,记录一下,脑子不够用的情况下,还是记笔记靠谱。
====================
顺便吐槽下,这年头得会各种编程语言入门级知识,因为指不定哪个语言就有其他语言没实现的经典开源项目。
比如前几天2D平台游戏寻路AI就是AS3的,4,5年没用过了,但是还好是类似C++,Java这种,没复习也能直接看懂。
最烦的是C#这种自创语法,语法糖的,什么Any判断集合非空,{ get => focusOnCamTarget; set => focusOnCamTarget = value; },这种鬼东西,第1次见也不知道是啥,虽然第一感觉像是getter,setter,为啥编译不过也不知道,但是改成老语法
get { return focusOnCamTarget; }
set { focusOnCamTarget = value; }
就行了。
Python平时用的也少,从网上看一般也就是用来抓个网页分析,爬虫,计算统计数学之类的,图像处理,再就是机器学习之类的在用,某些游戏也用来做脚本。
但是谁能想到MakeHuman这种捏人软件会用Python写,有时候真的没办法。
但是这些同JS比起来都好多了,10年前就讨厌JS,恶心的写法,浏览器依赖,以及更恶心的没什么好的调试环境,但是从Gayhub开源来看,JS的干货真的不少,没办法恶心也得学。
感叹下目前的计算机辅助水平以及硬件都太初级了,凡人如我,时不时就要同ASM,C,C++,C#,Java,JS,Python,Matlab做斗争,
期望编程语言也能像软件啊,操作系统之类的有个大一统垄断时代,因为面对陌生的语言,看点东西真心累,简直和外语一样绝望。
====================
函数参数前用this修饰是什么意思?
http://blog.csdn.net/jiankunking/article/details/42749375
防抽,例子
namespace ExtensionMethods
{
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
}
可使用此 using 指令将 WordCount 扩展方法置于范围中:
using ExtensionMethods;
而且,可以使用以下语法从应用程序中调用该扩展方法:
string s = "Hello Extension Methods";
int i = s.WordCount();
完整
using System; namespace ExtensionMethods
{
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
} namespace Test
{
using ExtensionMethods;
class Program
{
static void Main(string[] args)
{
string s = "Hello Extension Methods";
int i = s.WordCount(); Console.WriteLine(i);// }
}
}
====================
函数明带this[]是什么意思?看起来像个属性索引器,果然就是干这用的。
https://www.cnblogs.com/ArmyShen/archive/2012/08/27/2659405.html
例子
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace CS_Test
{
public class SomeClass
{
public Dictionary<string, string> dicNames = new Dictionary<string, string>();
public Dictionary<int, int> dicIDs = new Dictionary<int, int>(); public string this[string name]
{
get { return dicNames[name]; }
set { dicNames[name] = value; }
} public int this[int id]
{
get { return dicIDs[id]; }
set { dicIDs[id] = value; }
}
} class Program
{
static void Main(string[] args)
{
SomeClass sc = new SomeClass();
sc[0] = 233;
sc[1] = 999;
sc["Money"] = "钱";
sc["GirlFriend"] = "RightHand"; Console.WriteLine(sc[0]);
Console.WriteLine(sc[1]);
Console.WriteLine(sc["Money"]);
Console.WriteLine(sc["GirlFriend"]);
}
}
}
C#语言不常用语法笔记的更多相关文章
- Django模板语言(常用语法规则)
Django模板语言 The Django template language 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签 ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- Django笔记&教程 3-3 模板常用语法
Django 自学笔记兼学习教程第3章第3节--模板常用语法 点击查看教程总目录 本文主要参考:https://docs.djangoproject.com/en/2.2/ref/templates/ ...
- Markdown常用语法
什么是Markdown Markdown 是一种方便记忆.书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富表现力的文档. 通过Markdown简单的语法,就可以使普通文本内容具有 ...
- SQL基础语法笔记教程整理
PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...
- Markdown:常用语法
1.标题 说明:一共可以6级标题,几级几个# 一级标题 #一级标题 2.代码 用前后扩上 Hello World! 3.代码块 用前后扩上 Hello World! 4.加粗 加粗了 **加粗了** ...
- SQL 基础语法笔记教程整理
最近从图书馆借了本介绍 SQL 的书,打算复习一下基本语法,记录一下笔记,整理一下思路,以备日后复习之用. PS:本文适用 SQL Server2008 语法. 首先,附一个发现的 MySQL 读书笔 ...
- C语言深度解剖读书笔记
开始本节学习笔记之前,先说几句题外话.其实对于C语言深度解剖这本书来说,看完了有一段时间了,一直没有时间来写这篇博客.正巧还刚刚看完了国嵌唐老师的C语言视频,觉得两者是异曲同工,所以就把两者一起记录下 ...
- Markdown通用的常用语法说明
前言 Markdown 是一种轻量级的 标记语言,语法简洁明了.学习容易,还具有其他很多优点,目前被越来越多的人用来写作使用. Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表 ...
随机推荐
- android 开发 View _3_ View的属性动画ValueAnimator
ValueAnimator ValueAnimator继承自抽象类Animator.要让属性动画渐变式地更改对象中某个属性的值,可分两步操作:第一步,动画需要计算出某一时刻属性值应该是多少:第二步,需 ...
- Pycharm:使用笔记
1.快捷键笔记 CTRL+D:复制当前行 CTRL+/:注释选中行 CTRL+ALT+L:自动format,自动进行标准格式化 ALT + 7:查看当前文件的类和方法概览 Ctrl + Y 删除 ...
- mybatis的Selective接口和普通接口的区别
举例说明: updateByPrimaryKeySelective会对字段进行判断再更新(如果为Null就忽略更新),如果你只想更新某一字段,可以用这个方法. updateByPrimaryKey对你 ...
- ---dd-wrt memo
http://blog.csdn.net/fyh2003/article/details/44458657http://blog.csdn.net/u010189241/article/details ...
- RGB颜色值转化为long 型数字
通常我们表达颜色都是使用RGB值表示的,今天在VB中设置RGB值居然是一个整形数字,网上各种搜资料发现这个数字是怎么来的: 数值= 65536*Blue + 256* Green + Red
- sublime3支持es6语法和vue彩色显示
支持ES6语法设置: 首先安装nodejs 当然你可以使用其它诸如jsc之类的环境来运行js, 本文使用的是nodejs. 首先确保你的电脑已经安装好nodejs, 并已将其添加到环境变量中 (一般安 ...
- web.xml hello1代码分析
在“Web页”节点下,展开WEB-INF节点,然后双击web.xml文件进行查看. 上下文参数提供Web应用程序所需的配置信息.应用程序可以定义自己的上下文参数.此外,JavaServer Faces ...
- 用命令生成Webservice 对应的代理类
wsdl /language:C# /namespace:Camstar.WebPortal.WebPortlets.Shopfloor.SAP.GreatWall /out:gwSAPService ...
- 配置Java运行环境
变量名:JAVA_HOME 变量值:D:\Program Files\Java\jdk1.8.0_151(java安装目录) 变量名:Path 变量值:.;%J ...
- oracle数据库分页总结
/* BEGIN CREATE TABLE APPUSER(IDS NUMBER(8), USERNAME VARCHAR2(20), PASSWORD VARCHAR2(20), CTIME DAT ...