`
kofsky
  • 浏览: 202822 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

C#入门例子

阅读更多

一、属性

在属性的访问声明中:
◆只有set访问器,表明属性的值只能进行设置而不能读出。
◆只有get访问器,表明属性的值是只读的,不能改写。
◆同时具有set访问器和get访问器,表明属性的值的读写都是允许的。
除了使用了abstract修饰符的抽象属性,每个访问器的执行体中只有分号“;”,其它所有属性的get访问器都通过return来读取属性的值,set访问器都通过value来设置属性的值。

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

namespace ConsoleApplication1
...{
    
class Man
    
...{
        
private int _x;
        
public Man(int xx)
        
...{
            
this._x = xx;
        }

        
public int x
        
...{
            
get
            
...{
                Console.WriteLine(
"get x: {0}", _x);
                
return _x;
            }

            
set
            
...{

                Console.WriteLine(
"set x:{0} a new value {1}", _x, value);
                _x 
= value;
            }

        }

      
        
public static Man operator ++(Man man)
        
...{
            man.x 
= man.x + 100 ;//先运行一次 x.get,再运行一次 x.set
            return man;
        }

    }



    
class Program
    
...{
        
static void Main(string[] args)
        
...{
            Man man 
= new Man(33);
            Console.WriteLine(
"befor add:x-{0}", man.x);//运行一次 x.get
            man++;                                    
            Console.WriteLine(
"befor add:x-{0}", man.x);//运行一次 x.get
            return;
        }

    }

}

运行结果:

get x: 33
befor add:x-33
get x: 33
set x:33 a new value 133
get x: 133
befor add:x-133

每次 运行 man.x ,set  或者 get 都会自动运行,对属性进行读或者写。

感觉优点怪怪的,不过确实蛮方便的。

二、异常处理

异常处理貌似和java一样。

执行代码抛出异常,catch捕获异常,finally执行收尾工作(finally不管是否捕获异常都会执行)。

叁、装箱与拆箱
@装箱是将值类型转换为引用类型
@拆箱是将引用类型转换为值类型
@利用装箱和拆箱功能,可通过允许值类型的任何值与 Object 类型的值相互转换,将值类型与引用类型链接起来

装箱  值类型的数据转换为object类
      隐式转换
拆箱  将封装的对象转换为值
      显式转换
is运算符   <operand>  is  <type>
   <operand> 可转换为<type> true
as运算符   <operand>  as  <type>

int val = 100;
object obj = val;    //装箱:值类型到引用类型
int num = (int) obj; //拆箱:引用类型到值类型
//被装过箱的对象才能被拆箱???

四、C#通过提供索引器,可以象处理数组一样处理对象。特别是属性,每一个元素都以一个get或set方法暴露。

写了个实验的,好像长了点,晕。。。。个先。。。 

    class MyName                   //姓名对象
    ...{
        
private string _first_name; //
        private string _second_name;//
        public MyName(String first_name, String second_name)
        
...{//构造函数
            this._first_name = first_name;
            
this._second_name = second_name;
        }

        
public String FirstName
        
...{//属性
            get ...return _first_name; }
            
set ...this._first_name = value; }
        }

        
public String SecondName
        
...{/**/////属性
            get ...return _second_name; }
            
set ...this._second_name = value; }
        }

    }

    
class MynameList  //测试索引器
    ...{
        
private MyName[] names;

        
public MynameList(int capacity)
        
...{
            
this.names = new MyName[capacity];
        }

        
public MyName this[String first_name]//用姓索引
        ...{
            
get
            
...{
                
// 遍历数组中是否存在该姓的对象,若存在返回第一个找到的对象
                foreach (MyName curName in names)
                
...{
                    
if (curName.FirstName == first_name)
                        
return curName;
                }

                Console.WriteLine(
"未找到");
                
return null// 使用 null 指示失败

            }

        }

        
public MyName this[int index] //用下标索引
        
...{
            
get
            
...{
                
// 验证索引范围
                if (index < 0 || index >= names.Length)
                
...{
                    Console.WriteLine(
"索引无效");
                    
return null;// 使用 null 指示失败
                }

                
return names[index]; // 对于有效索引,返回请求的对象
            }

            
set
            
...{
                
if (index < 0 || index >= names.Length)
                
...{
                    Console.WriteLine(
"索引无效");
                    
return;
                }

                names[index] 
= value;
            }

        }
分享到:
评论

相关推荐

    经典C#入门例子

    经典C#入门例子系列是屡获殊荣的C#名著和超级畅销书。全面介绍使用C# 6和.NET Framework编写程序的基础知识,是编程新手的理想读物。这本分步讲解的实用教程从最基本的面向对象编程讲起,浓墨重彩地描述初学者最常用...

    C#入门实例程序.rar_C#入门实例程序_入门_实例

    "C#入门实例程序.rar" 是一个针对初学者的资源包,它包含了100个精心设计的C#实例程序,旨在帮助新手快速掌握C#的基础知识和编程技巧。 1. **C#基础语法**:在这些实例中,你会遇到C#的基本语法结构,如变量声明、...

    《C#入门经典》全书例子代码

    在提供的压缩包文件“C#入门经典全书例子代码”中,包含了书中每一个章节实例的完整源代码。这些代码是学习和理解C#的关键资源,因为它们将理论知识与实践相结合,使读者能够亲手运行并调试程序,从而更深刻地领会C#...

    C#入门实例源码100个(适合初学者)+198个经典C#WinForm实例源码合集.zip

    首先,让我们关注100个C#入门实例源码。这些实例旨在帮助初学者快速掌握C#的基本语法和编程概念。它们可能包括变量声明、数据类型、控制结构(如if语句、for循环、while循环)、函数的使用、类与对象的创建、继承、...

    经典C#入门例子.rar_prepdf_入门案例

    标题中的“经典C#入门例子.rar_prepdf_入门案例”暗示了这个压缩包包含了一些用于初学者学习C#编程的基础示例。C#是一种由微软开发的面向对象的编程语言,广泛应用于Windows平台、Web应用以及游戏开发等领域。在本...

    C#入门实例源码源码源码源码

    本资源是一份专为C#初学者准备的入门实例源码,旨在帮助初学者通过实践理解C#的基础语法和编程概念。 1. **C#基础语法** - 变量声明:在C#中,变量必须先声明后使用,可以指定数据类型,如int age = 25;。 - 类型...

    c#入门实例源码

    "C#入门实例源码"这个资源为想要学习C#的人提供了一条实践性的学习路径。 在初学者的编程旅程中,理论知识固然重要,但没有实际操作的经验,理解往往会停留在表面。这个压缩包包含了100个C#的入门实例源码,这些...

    C#入门实例代码

    【C#入门实例代码】是一份非常有价值的资源,适合初学者深入理解C#编程语言。这份压缩包包含了一系列C#实现的小项目,涵盖了多种实际应用技术,如ASP.NET web服务器开发、一般处理程序(HTTP Handler)、文件操作、...

    DirectX C#入门实例(源码)

    这个"DirectX C#入门实例(源码)"是一个帮助初学者理解如何在C#中使用DirectX进行图形编程的实践项目。 首先,`D3DTest.sln`是一个Visual Studio解决方案文件。当你用Visual Studio打开这个文件时,你可以看到项目...

    C# 入门例子和代码学习

    C# 入门例子和代码 第1章:C# 简介 C# 是一种面向对象的编程语言,由微软开发并作为.NET框架的一部分。它被广泛用于Windows应用程序、游戏开发(使用Unity引擎)和Web应用程序。 第2章:环境搭建 安装 .NET SDK ...

    c#入门实例源代码(代码数据库完整)

    总之,这套“C#入门实例源代码”提供了全面的学习路径,从基础知识到实际项目操作,覆盖了C#编程的多个重要方面。通过深入研究这些源代码,你不仅可以掌握C#语言的基本用法,还能了解到实际开发中的最佳实践。对于想...

    c#入门实例(通讯录)

    《C#入门实例:构建通讯录》 C#是一种由微软公司推出的面向对象的编程语言,广泛应用于Windows平台上的软件开发,尤其在游戏、桌面应用和Web服务领域有着广泛的应用。本实例将带领你深入理解C#的基础知识,并通过...

    C#入门实例程序100个.rar

    《C#入门实例程序100个》是一个针对初学者精心设计的学习资源包,它包含了100个C#编程的实例,旨在帮助新手快速掌握C#语言的基础知识和实际应用技巧。这些实例覆盖了从基础语法到高级特性的广泛范围,通过实践的方式...

    C#入门实例

    "C#入门实例"是学习C#的基础,通过一系列简单而经典的例子,帮助初学者理解并掌握C#的核心概念和语法。 一、基础语法与数据类型 C#中的数据类型包括基本类型(如int、float、char)和引用类型(如类、接口)。在...

    C#入门小例子

    本资源“C#入门小例子”是为初学者准备的,它包含了一百个实例程序,旨在帮助新手快速掌握C#的基础知识和编程技巧。 首先,C#(读作"C Sharp")是微软公司于2000年推出的一种面向对象的编程语言,它基于.NET框架,...

    C#入门经典第7版.pdf

    《C#入门经典第7版》是一本专为初学者设计的C#编程教程,它详细介绍了C#语言的基础知识和最新特性。本书是第七版,意味着它已经经过了多次更新,以适应C#语言的发展变化,特别是针对.NET Framework和.NET Core的最新...

    C#入门经典 及代码

    "C#入门经典及代码"这套资料旨在帮助初学者掌握C#的基础知识,并通过实际的代码示例加深理解。 首先,学习C#,你需要了解它的基本语法结构。C#中的程序始于`using`语句,它用于引入命名空间,例如`System`,这包含...

Global site tag (gtag.js) - Google Analytics