asp.net中C#对象与方法 属性详解
C#对象与方法
一、相关概念:
1、对象:现实世界中的实体
2、 类:具有相似属性和方法的对象的集合
3、面向对象程序设计的特点:封装 继承 多态
二、类的定义与语法
1、定义类: 修饰符 类名称 类成员
a)定义类语法:
修饰符 class 类名
{
类成员
}
2、类的访问修饰符:public internal
a) public:可访问域是所在的程序 和任何引用的程序 访问不受限制
定义语法:
public class 类名
{
类成员
}
b) internal:可访问域定义范围内 (默认访问修饰符)
语法:
(internal) class 类名
{
类成员
}
3、类成员:数据成员和字段
a) 数据成员:字段和常量
字段:变量
声明:类型 字段名
例:
| 代码如下 | 复制代码 |
|
public class Persion class Test |
|
b) 方法成员
声明:
修饰符 返回值类型 方法名(参数列表)
{
方法体
}
修饰符:如:public、private、protected、internal
返回值类型:若方法无返回值,则使用 void
例:
| 代码如下 | 复制代码 |
|
public void Method() |
|
4、成员的访问修饰符:public、private、protected、internal
a) public:公有成员
b) private:私有成员
c) protected:保护成员
d) internal:内部成员
例:
| 代码如下 | 复制代码 |
|
using System; namespace ConsoleApplication2 |
|
三、实例化对象:关键字:new
例:
| 代码如下 | 复制代码 |
|
?using System; |
|
C#对象数组排序方法
排序是编程中常用的法算之一,排序的方法有很多种,下面介绍一种简单有效的排序方法,代码如下:
| 代码如下 | 复制代码 |
| private bool isReverse = false; private void Sort(PersonalNotificationEntity [] list,string key) { if ( isReverse ) { Array.Reverse(list); isReverse = false; } else { int len = list.Length; Type type = typeof(PersonalNotificationEntity); object [] keys = new object[len]; for(int i = 0 ; i < len ; i++) { keys[i] = type.InvokeMember(key,BindingFlags.GetField ,null,list[i],null); } Array.Sort(keys,list); isReverse = true; } } |
|
这里使用了Array.Sort()和Array.Reverse()方法对数据进行正/反排序,变量isReverse做为反排序的标志位
方法传入了2个参数,一个是要排序的对象数组list,一个是排序关键字key,即要对象的根据哪个属性或字段来进行排序(这个值是等于对象的属性/字段名)
type.InvokeMember()方法可以得到对象实例的属性/字段值,这里使用的是字段
在得到数组中的每一个要排序的字段值后,把这个字段值数组做为Array.Sort()方法的参数传入,Sort方法就会将对象数按这个字段的值进行排序
四、属性
1、
a) 概念:用于访问类的字段的成员
b) 属性用途:保证数据安全 作数据的验证
2、声明:
访问修饰符 数据类型 属性名
{
get{}
set{}
}
3、get 访问器
a) 含义:不带参数,用于向外部指定字段的值,通常使用return 语句返回某个变量的值 在属性取值时自动调用
b) get 访问器的使用:
| 代码如下 | 复制代码 |
|
using System; namespace ConsoleApplication2 public string Name } |
|
4、set 访问器:返回值类型为void
5、属性类型:
a) 读/写:有get()和set()访问器的属性
b) 只读:有get(0访问器的属性,对成员提供读取
c)只写(不推荐使用):仅包含set() 访问器
五、方法的参数
1、值参数:按值传递
例:
| 代码如下 | 复制代码 |
|
using System; namespace ConsoleApplication2 |
|
2、引用参数:向方法传递实参在内存中的地址,按地址传递
例:
| 代码如下 | 复制代码 |
|
using System; namespace ConsoleApplication2 |
|
3、输出参数:从方法传递回一个结果
关键字:out http://www.111cn.net/net/net/46994.htm
例:
| 代码如下 | 复制代码 |
|
using System; namespace ConsoleApplication2 |
|
4、数组型参数:参数只允许是一组数组,当方法的参数前带有params关键字时,就是带数组型参数的方法(使用引用传递)
例:
| 代码如下 | 复制代码 |
|
using System; namespace ConsoleApplication2 |
|
补充 对象 方法 属性有和区别
在面向对象里面,对象和类是不同的,对象是特定类的一个实例,比如如果车是一个类的话,某个人的一辆奔驰车就是一个对象,它是车这个类的实例。类是抽象的,而对象是具体的。方法是定义在对象上的操作,属性是记录对象性质和状态的变量,拿上面车的例子来说,车的重量,最大速度是车的属性,启动,停在这些动作则可以定义为车的方法。我说的可能不太准确,建议楼主看看面向对象相关的书籍。
补充:
对象和类当然是不一样的,对象是类的具体化(其实不准确),再打个比方吧,
告诉你猫是一个类,它包含两个属性,重量和毛色,
根据上面的信息你能知道是指是哪只猫吗?不能吧,因为你不知道它的重量和毛色。 现在把猫实例化,即指定它的重量和毛色,假定为1kg、黑色,而这个1kg黑色的猫就是对象了,同样,2kg白色的猫,3kg黄色的猫,等都是对象。
当然1kg黑色的猫也可以是作为一个类,为这个类加个主人属性,
实例化类就得到对像,比如李四的(1kg黑色猫),张三的(1kg黑色猫)... 就是这个类的对象。
接着,李四的lkg黑色猫也可以成为一个类了,那这个类的对象呢,和上面一样,加个能够区分的属性。
......
这样就形成了类的层次结构了,然后父类,子类(派生类),继承等概念都可以理解了。
asp.net中C#对象与方法 属性详解的更多相关文章
- JavaScript对象的property属性详解
JavaScript对象的property属性详解:https://www.jb51.net/article/48594.htm JS原型与原型链终极详解_proto_.prototype及const ...
- jQuery Mobile中jQuery.mobile.changePage方法使用详解
jQuery.mobile.changePage方法用的还是很多的.作为一个老手,有必要对jQuery mobile中实用方法做一些总结.系列文章请看jQuery Mobile专栏.jquery.mo ...
- Jquery中find与each方法使用详解
本文实例讲述了jQuery中find与each方法用法.分享给大家供大家参考.具体如下: 一.find()方法 jquery选择器非常强大,利用css的命名规约,可以更快更方便的找出想要的元素. 图解 ...
- 第15.24节 PyQt(Python+Qt)入门学习:Model/View架构中QTableView的作用及属性详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在Designer的部件栏Item Views中提供了PyQt和Qt已经实现好的table ...
- Lua中强大的元方法__index详解
今天要来介绍比较好玩的内容:__index元方法 我是备胎,记得回头看看 咳咳,相信每一位女生都拥有或者不知不觉中拥有了一些备胎,啊!当然,又或许是成为过别人的备胎. 没有备胎的人,就不是完整的人生. ...
- asp.net中web.config配置节点大全详解
最近网上找了一些关于Web.config配置节点的文章,发现很多都写的都比较零散,而且很少有说明各个配置节点的作用和用法.搜索了一下发现有一篇写的不错,这里引用一下 原文地址 http://www.c ...
- asp.net中web.config配置节点大全详解【转】
web.config 文件查找规则: (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找. (2)如果当前页面所在目录下不存在web ...
- 85.常用的返回QuerySet对象的方法使用详解:defer,only
defer(),only(): 这两个方法都会返回一个"QuerySet"对象,并且这个"QuerySet"中装的是模型,不像values()和values_l ...
- 84.常用的返回QuerySet对象的方法使用详解:select_related, prefetch_related
1.select_related: 只能用在一对多或者是一对一的关联模型之间,不能用在多对多或者是多对一的关联模型间,比如可以提前获取文章的作者,但是不能通过作者获取作者的文章,或者是通过某篇文章获取 ...
随机推荐
- php 基本符号
用这么久了,竟然PHP的基本符号都没有认全,看到@号还查了半天才知道什么意思.把基本符号列表帖一下吧,需要的朋友可以参考~ 注解符号: // 单行注解 /* ...
- PostgreSQL中,如何查表属于哪个数据库
db1=# \x Expanded display is on. db1=# SELECT * FROM information_schema.tables WHERE table_name='tab ...
- POJ1463:Strategic game(树形DP)
Description Bob enjoys playing computer games, especially strategic games, but sometimes he cannot f ...
- ListView删除选中的多项目
//ListView删除选中的多项目function DeleteMultSelItems(ListView:TListView):Boolean;var I: Integer;begin Res ...
- ListView返回选中的多项目
ListView返回选中的多项目 procedure TForm1.Button3Click(Sender: TObject);var s: string; I: Integer;begi ...
- ios开发——实用技术篇Swift篇&多点触摸与手势识别
多点触摸与手势识别 //点击事件 var atap = UITapGestureRecognizer(target: self, action: "tapDo:") self.vi ...
- Online DDL与pt-online-schema-change
http://seanlook.com/2016/05/24/mysql-online-ddl-concept/ http://seanlook.com/2016/05/27/mysql-pt-onl ...
- 关于MIUI悬浮窗权限问题的解决方案
先扯会....好久没写Blog了....这段时间有点小忙...瞎忙.....忙的自己都感觉都不应该.....严重影响了生活质量......生活的幸福指数!!!.....到现在还特么的单身!!!求介绍啊 ...
- Fedora下载地址
http://fedoraproject.org/zh_CN/get-fedora-all
- Sorting It All Out
Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...