zoukankan      html  css  js  c++  java
  • 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);//3
    
            }
        }
    }

     ====================

    函数明带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"]);
            }
        }
    }
    

      

  • 相关阅读:
    JQuery 简单实现折叠菜单
    机械迷城攻略2
    ffmpeg视频转换及截图
    机械迷城攻略3
    SQL:清空数据库所有数据
    .net发送邮件outlook中文乱码
    我读我的Book
    转:精妙SQL语句收集
    SQL server 动态查询(表名或字段动态),并且获取想得到的返回值结果
    软件开发中,这些文档你用到了吗
  • 原文地址:https://www.cnblogs.com/kileyi/p/8135663.html
Copyright © 2011-2022 走看看