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的功能(如表 ... 
随机推荐
- Ext.NET Grid Group分组使用
			- 需要注意的是, 涉及到分页排序, 最好定义GroupDir 方向与分组方式相同. - 譬如工资表按照最新最前分页输出. 如果分组按照默认排序的话, 最就最前. - 界面呈现出2015年, 2016 ... 
- 当一个HTML元素需要添加mouseon、mouseout与click事件,或者mouserenter、mouseleave和click事件时,click事件无法触发
			当一个HTML元素需要添加mouseon.mouseout与click事件,或者mouserenter.mouseleave和click事件时,click事件无法触发 针对上述问题,我遇到的有两种情况 ... 
- 杂谈2.py
			tuple用圆括号括住的项的列表,这些项不能改变,括号内的值都是相关的 dictionary 已经配对的键和值的列表,用花括号括住 当创建对象并在其中存储信息的时候变量的类型就确定啦 type(obj ... 
- android 开发 View _14  MotionEvent和事件处理详解,与实践自定义滑动条View
			转载https://blog.csdn.net/huaxun66/article/details/52352469 MotionEvent MotionEvent对象是与用户触摸相关的时间序列,该序列 ... 
- win10 安装 oracle 11g
			在安装文件的/stage/cvu文件夹下面找到文件 cvu_prereq.xml文件 64位添加红色部分 32位添加蓝色部分 ............... </OPERATING_SYST ... 
- C++获取当前执行程序文件所在的全路径
- adobe cc最新版 软件安装与激活
			adobe cc最新版 软件安装与激活:https://m.weike.fm/lecture/4912961 说明#:Adobe CC2017的所有软件都可以按照以上方法进行安装,如:Premier ... 
- 三. html&JavaScript&ajax 部 分
			1. 判 断 第 二 个 日 期 比 第 一 个 日 期 大 如何用脚本判断用户输入的的字符串是下面的时间格式2004-11-21必须要保证用户 的输入是此格式,并且是时间,比如说月份不大于12等等, ... 
- FTRL的理解
			https://blog.csdn.net/ningyanggege/article/details/81133785 
- 作业注释 CSS表单1 输入框前有图片
			<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ... 
