明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: nonsmall

[基础] [分享] 零起点学习C#--小猫自学笔记

  [复制链接]
发表于 2009-6-25 17:50 | 显示全部楼层
本帖最后由 作者 于 2009-6-26 10:32:11 编辑

请允许我灌灌水。

真的发现受过计算机专业教育的,果然学习任何编程语言真是有一套。

nonsamll应该学习任意一种编程语言都会非常快的。

我看了好久也不懂,除了自学了点lisp,啥都不懂(VBA的对象模型也是琢磨了好久才懂)。

一点编程的理论都没有来学习,心里真没底(LISP现在会一点,也是时间花的比别人多点)。

C#越看不懂,越静不下心,越浮躁。

不过,我相信时间会证明一切,今天你不懂的东西,只要有心,总有一天会明白的。

以后决定常来这里跟nonsmall学C#。还有向lzh741206版主学习。

另:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {

                // Beep不了。。。
                Console.Beep((Convert.ToInt32(Console.ReadLine()) + 40) * 50, 1);
            }
        }
    }
}

发表于 2009-6-25 18:27 | 显示全部楼层

Array类的函数很实用的:)

                double[] vals =
                    new double[] { 1, 2, 3, 4 };

                Array.ForEach<double>(vals, d => Helper.WriteMessage(d.ToString()));

double[][] arr;

声明的是数组的数组

二维数组应该是

                double[,] vals =
                    new double[,]
                    {
                        {1, 2},
                        {3, 4}
                    };

C#里直接用数组应该很少了,用泛型集合要灵活的多

 楼主| 发表于 2009-6-26 11:28 | 显示全部楼层

萝卜咱们一起向版主学习.这事没得着急,要想学成Lisp那样随心所欲,估计起码要个一年半载的.贵在

坚持.此外谢谢斑竹的指点.

2009年6月26日 早上一阵大暴雨,差点挨浇^_^.

来学习一下字符串处理.
string 类型可以看做char 类型的数组
 string str = "abc";
            char[] strArray = str.ToCharArray();
            foreach (char s in str)
            {
                Console.WriteLine("{0}",s);
            }
输出a b c

            foreach (char s in strArray)
            {
                Console.WriteLine("{0}", s);
            }
这个也是一样的
获取长度str.Length 大写str.ToUpper 小写str.ToLower
删除空格trim
删除其他字符方法:
            char[] delstr = { 'n', 'o' };
            str = "nonsmall";
            Console.WriteLine ("{0}",str.Trim(delstr));
返回small
字符串补充:
            str = "nonsmall";
            str =  str.PadLeft (15 , '>');
            Console.WriteLine("{0}",str);
但是这样不可以:
            str =  str.PadLeft (15 , '->');
拆分为字符串数组:
            str = "How are you !";
            char[] del = { ' ' };
            string [] strArray =  str.Split (del);
            foreach (string s in strArray)
            {
                Console.WriteLine("{0}", s);
            }
(这个在Lisp里面就是字符串拆为表)
之后在帮助中查看一下string的成员 大致了解有哪些函数即可.

 楼主| 发表于 2009-6-26 12:43 | 显示全部楼层

函数部分昨天已经尝试写了一个,主要看一下不知道的部分.
参数数组:
尝试自己写一个看看
 static string strcat(params string[] strs)
        {
            string S = "";
            foreach (string s in strs)
            {
                S += s;
            }
            return S;
        }
测试Console.WriteLine("{0}", strcat ("a" , "b" , "c"));
输出为abc

测试Console.WriteLine("{0}", strcat ("non" , "small"));
输出为nonsmall

参数传进去被改变:
            double tmp = 1;//需要初始化哦
            ii(ref tmp);

 static void ii (ref double c)
        {
            c++;
        }
(这些代码都是一次一次调试后才成功的,因为没有照着书上的写)

输出参数:
这个部分看一遍我就感觉和Lisp调用GetBoundingBox方法返回两个点的方式很像!
而且使用的感觉是只出不进的.

        static void ii (ref double c, out int d)
        {
            c++;
            d = 6;
        }
 double tmp = 1;
            int outnum;
            ii(ref tmp, out outnum);
            Console.WriteLine("{0}{1}", tmp, outnum);
得到26

 楼主| 发表于 2009-6-29 10:36 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2009-7-1 09:10 | 显示全部楼层
carrot1983发表于2009-6-25 17:50:00另:using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication5{    class Program    {     


每次需要输入一个数字 然后敲回车就行了

1

2

3

4

类似这样的输入(我在VS2005下)

---------------------------------

结构函数:
就是结构里面放函数
重载:
这个很有用,同名函数接受不同个数不同类型的参数.

委托:
这部分看的不是很明白,先放一放
定义一个函数,可以作为变量来用,难道是C里面"指向函数的指针"?

第七章讲解调试,自己看看即可.

(对于Main(string[] arg)尝试了对生成出来的Exe文件创建带参的快捷方式 成功!)

 楼主| 发表于 2009-7-2 16:28 | 显示全部楼层

面向对象的思想和概念

说实话,这几天大概浏览了一下后面的内容,有很多概念还无法理解.但这事不能着急,
能理解多少算多少,先模仿,回头再多看多学几次.

我的理解:类是概念(虚幻的 对象的抽象表达方式),而对象是真实的(看得见 摸得到 感觉得到).
比如说一条线(这句话只表示了线的概念),我们用Line命令真的画出来一条,这个就是"一条线"的实例

对象.
实例具有概念的一切特征(如 起点 终点 线型 颜色 图层等),还有自己独特的性质(与任何别的线都不

同的 如句柄).--似乎和继承的概念类似吧

类的属性和字段具有读写 只读等特性 可以指定各种访问的权限.

方法,也就是函数,面向对象应该是在处理类里面的属性和方法的可访问性上做了很多复杂的规定,让我

一时消化不了.

所有东西都是对象.
这样归类起来的确方便,所有的string都可以用.来方便的调用函数了.
构造函数:
在用new创造类的实例对象时执行的方法(函数).
该方法与类名相同即可,允许重构该函数.
析构函数:
在释放对象时调用,这个部分要后面学.

静态类直接调用,不需要实例化对象.里面用静态成员.不需构造函数?

接口:
接口是为了多重继承类的一种方法?
一些公共的 常用的属性和方法定义出一个接口,然后在调用接口的类中实现.
IDisposable 接口必须实现其Dispose方法 必须提供这个方法的代码.

继承:
类可以继承于类,并且使用其父类的一些方法和属性,包括Public(公共的东西都可以用) 和

protected(自己家里的家里人用)

基类(父类)可以是虚拟的,成员可以由继承类重写.
抽象类不能实例化 但是可以封装功能
密封的类不能用作基类

发表于 2009-7-2 17:07 | 显示全部楼层

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "你好吗123";
            char[] strArray = str.ToCharArray();
            foreach (char s in str)
            {
                Console.WriteLine("{0}", s);
            }
        }
    }
}

打印出:

1

2

3

-------------------------------------

打印出来的结果让我觉得不错。。。能区分中文与英文。不像LISP的substr还要区分单字节和双字节

char 表示一个 Unicode 字符。。。什么概念?

nonsmall能否写个提取数字、中文、字母、符号等。。。字符串的处理很实用。

发表于 2009-7-2 17:46 | 显示全部楼层

面向对象的概念,nonsmall 还要多找几本书看看:)

Unicode字符

可以看下这里

http://zhidao.baidu.com/question/31882416.html

字符串处理用正则表达式很方便

发表于 2009-9-11 09:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-23 21:57 , Processed in 0.233251 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表