惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Microsoft Azure Blog
Microsoft Azure Blog
Cloudbric
Cloudbric
I
InfoQ
V
V2EX
博客园_首页
The Register - Security
The Register - Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
Secure Thoughts
Vercel News
Vercel News
Forbes - Security
Forbes - Security
云风的 BLOG
云风的 BLOG
PCI Perspectives
PCI Perspectives
L
LINUX DO - 最新话题
D
DataBreaches.Net
H
Hacker News: Front Page
Application and Cybersecurity Blog
Application and Cybersecurity Blog
B
Blog RSS Feed
A
About on SuperTechFans
N
News and Events Feed by Topic
Apple Machine Learning Research
Apple Machine Learning Research
Help Net Security
Help Net Security
Attack and Defense Labs
Attack and Defense Labs
N
Netflix TechBlog - Medium
Spread Privacy
Spread Privacy
F
Full Disclosure
Recorded Future
Recorded Future
AWS News Blog
AWS News Blog
博客园 - 【当耐特】
The Cloudflare Blog
T
Threatpost
T
Tor Project blog
Google DeepMind News
Google DeepMind News
C
CXSECURITY Database RSS Feed - CXSecurity.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
M
MIT News - Artificial intelligence
A
Arctic Wolf
C
Check Point Blog
Stack Overflow Blog
Stack Overflow Blog
T
Threat Research - Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
Hacker News - Newest:
Hacker News - Newest: "LLM"
WordPress大学
WordPress大学
Cyberwarzone
Cyberwarzone
小众软件
小众软件
C
Cyber Attacks, Cyber Crime and Cyber Security
P
Proofpoint News Feed
Security Latest
Security Latest
The Last Watchdog
The Last Watchdog

博客园 - 9who

Nopcommerce2.70版本如何在vs2010中打开 UrlRewriter 伪url的配置 - 9who - 博客园 百度,google,雅虎等搜索引擎的高级搜索语法 开发记录——触发器实现 数据库关联字段 FCKEditor在.net的使用 JS函数验证总结 - 9who - 博客园 petshop4.0 各个文件的作用 如何构造一个C#语言的爬虫蜘蛛程序 ASP.NET26个常用性能优化方法 CSS基本布局16例 CSS命名规范(建议版) web布局最实用的12条css技巧 SQL2005数据库转换到SQL2000 我的几个.NET编程习惯 SQL2005示例数据库|AdventureWorks下载安装|NORTHWND下载安装|PUBS下载安装 (转)Ext与.NET超完美整合 .NET开发者的超级优势 C#与OOP之 接口 ASP.NET常用到的js通用函数 c#代码可以做成dll来使用 ASP.NET 脚本侵入概述
C#中面向对象的OOP概念
9who · 2008-08-05 · via 博客园 - 9who

一、C#的对象和类
对象是包含数据和操作的实体,它既定义数据元素,又定义可应用这些数据元素的操作。
是对一组具有相同属性和行为的对象的描述,类的内容称为类的成员。
声明类的语法:
访问修饰符 class 类名
{
  //类的主体
}
给类命名应使用帕斯卡命名法,确保类的名称是一个名词。
类的主题包含成员变量和成员方法
声明成员变量语法:
访问修饰符 数据类型 成员变量名;
编码惯例:
公共成员变量、受保护成员变量和内部成员变量应使用帕斯卡命名法。
如:public string Name;
私有成员变量应使用骆驼命名法,并以下划线开头。
如:private string _name;
创建类的实例或对象,用C#的net关键字。

二、访问修饰符:
访问修饰符      说明
public                可被所属类的成员以及不属于类的成员访问
internal               可被当前程序集访问
protected            可被所属类或派生自所属类的类型访问
private               仅所属类的成员才可以访问
如果对类不指定访问修饰符,则类的默认访问修饰符为internal,但是类成员的默认访问修饰符为private

三、构造函数和析构函数
1、什么是构造函数
构造函数是类中的一中特殊方法,每次创建类的实例时都会调用此方法。
构造函数一般用来自动初始化成员变量,但也可以根据需要执行其他的动作
构造函数与类同名,不返回任何值
2.声明构造函数的语法:
访问修饰符 类名()
{
         //构造函数的主体
}
没有参数的构造函数为默认构造函数,这种构造函数不接受任何参数。
如果类未定义默认构造函数,运行库将自动提供默认构造函数。
3.带参数的构造函数
访问修饰符 类名(参数)
{
         //构造函数的主体
}
4.什么是析构函数
析构函数是C#的另一种特殊方法,用语执行清楚操作。析构函数不接受任何参数,也不带任何访问修饰符,析构函数主体包括的一些代码通常用于关闭有实例打开的数据库、文件或网络连接等。
注意:
一个类只能有一个析构函数。
析构函数不能重载。
析构函数不能显示或手动调用,只能有垃圾回收器自动调用。
语法:
~类名()
{
         //析构函数的主体
}

四、方法
1、声明方法
访问修饰符 返回值类型 方法名(参数)
{
         //方法主体
}
注意:
如果不返回任何值,则返回值类型为void,参数列表是由逗号分割的零个或多个变量声明列表,它是可选的。
默认的访问修饰符为private
编码惯例:
给成员方法命名应使用帕斯卡命名法,请确保方法的名称为动词或动词与对象组合。
2、调用方法
调用C#方法首先要创建对象实例,在用成员访问运算符点来调用方法
如:对象名.方法名([参数列表]);
在方法内使用return [表达式]语句用语将控制权交回调用程序。
3.方法重载
方法共用一个名称但对不同数据执行相似的功能,这种概念称为方法重载,不同的方法根据方法签名来识别,方法签名包括对方法的声明。每个重载方法的方法签名都应该是唯一的。
如下:
……
Class Books
{
         ……
         void PayBill(int indix)
         {
                //方法主体
         }

           void PayBill(string name)
         {
                //方法主体
         }

           void PayBill(int indix,string name)
         {
                //方法主体
         }
}
注意:
可根据不同数量的参数来重载方法,每个被重载的方法都有不同的参数
可根据不同类型的参数来重载方法,参数的数量保持不变。
4、静态方法
静态方法就是一个类的所有实例共享的方法
语法:
访问修饰符 static 返回值类型 方法名(参数列表)
说明:
访问静态方法的时候不需要创建类的实例,采取“类名.方法名”即可,Console.Write()就是Console类的一个静态方法。

五、命名空间
命名空间是为了避免名称冲突和有助于组织代码,在代码中使用命名空间将降低在其他应用程序中重用此代码的复杂性。命名空间相当于规定了不同的范围,在不同的范围内允许有相同的名称,用命名空间方式处理名称冲突的问题,使程序更简洁‘更有条件和更有结构性。
语法:
namespace 命名空间的名称
{
         //该命名空间的所有类都放在这里。
}
编码惯例:
给命名空间命名应使用帕斯卡命名法。