属性:

1.一般属性开头字母大写,字段开头字母小写。

2.通过public来赋值的方法无法判断赋值是否非法!

3.无论赋值如何,取值如果就是不采用赋值的结果,那么无论赋值什么都不管用。

4.经典错误之死循环。

5.只读属性。

6..net3.0以上支持简写代码

例一:

通过public来赋值的方法无法判断赋值是否非法!

验证代码如下:

using System;
using System.Collections.Generic;
using System.Text;
namespace stduy2
{
class Program
{
static void Main(string[] args)
{
Person p = new Person(); p.Age = ;//赋值
Console.WriteLine("星云的年龄:Age={0}",p.Age);//取值结果22
p.Age = -;
Console.WriteLine("所以星云修改后的年龄:Age={0}\n", p.Age);//取值结果22
p.Age1 = -;//这种赋值方法,无法判断合法值
Console.WriteLine("通过public来赋值的方法无法判断赋值是否非法!\n所以星云新的年龄为错误值:Age1={0},", p.Age1);//取值结果-100
Console.ReadKey();
}
}
class Person
{
private int age;
public int Age1;
public int Age
{
set //赋值
{
if (value< )
{
Console.WriteLine("\n警告:年龄修改失败,年龄将保持不变,失败原因:年龄不能为负数!");
}
else
this.age = value;
}
get //取值
{
return this.age; }
}
}
}

运行截图:

例二:

无论赋值如何,取值如果就是不采用赋值的结果,那么无论赋值什么都不管用。

代码验证如下:

using System;
using System.Collections.Generic;
using System.Text; namespace stduy2
{
class Program
{
static void Main(string[] args)
{
Person p = new Person(); p.Age = ;//赋值
Console.WriteLine("星云的年龄:Age={0}",p.Age);//取值返回值520
p.Age = -;
Console.WriteLine("所以星云修改后的年龄:Age={0}\n", p.Age);//取值,返回值为520
p.Age = ;
p.Age = p.Age + ;
Console.WriteLine("\n计算后星云年龄为p.Age={0}",p.Age);//取值,所以返回值是520
Console.ReadKey();
}
}
class Person
{
private int age;
public int Age1;
public int Age
{
set //赋值
{
if (value< )
{
Console.WriteLine("\n警告:年龄修改失败,年龄将保持不变,失败原因:年龄不能为负数!");
}
else
this.age = value;
}
get //取值
{
return ;
}
}
}
}

程序运行截图:

例三:经典错误之死循环:

代码如下:

using System;
using System.Collections.Generic;
using System.Text; namespace stduy2
{
class Program
{
static void Main(string[] args)
{
Person p = new Person(); p.Age = ;//赋值
Console.WriteLine("星云的年龄:Age={0}",p.Age);//取值死循环
Console.ReadKey();
}
}
class Person
{
private int age;
public int Age
{
set //赋值
{
this.Age = value;
}
get //取值
{
return this.Age; }
}
}
}

例四:只读属性:

using System;
using System.Collections.Generic;
using System.Text; namespace Person
{
class Program
{
static void Main(string[] args)
{
person p = new person();
p.IncAge();
Console.WriteLine("年龄:{0}", p.Age);
p.IncAge();
Console.WriteLine("年龄:{0}",p.Age);
Console.ReadKey();
}
} class person
{
private int age;
public int Age //只读属性
{
get { return age; } }
public void IncAge()
{
age++;
}
}
}

运行截图:

例五:.net3.0以上支持简写代码:

using System;
using System.Collections.Generic;
using System.Text; namespace Person
{
class Program
{
static void Main(string[] args)
{
person p = new person();
p.Age = ;
Console.WriteLine("星云年龄:{0}", p.Age);
Console.ReadKey();
}
} class person
{ public int Age
{
set;//编译器自动帮我们生成私有字段和set、get代码块。
get; }
public String Name
{
set;
get;
}
}
}

运行截图:

2.C#面向对象基础属性的更多相关文章

  1. python面向对象基础-属性/方法

  2. 了解JavaScript 面向对象基础 & 原型与对象

    面向对象语言中的对象 老是能听到什么基于对象, 面向对象. 什么是对象, 如果有面向对象基础的人可以无视了, 下面举个简单的例子给大家讲讲面向对象中, 对象的定义, 这个是比较通用的, 不过对于JS来 ...

  3. 从零开始学Python第六周:面向对象基础(需修改)

    标签(空格分隔): 面向对象 一,面向对象基础 (1)面向对象概述 面向过程:根据业务逻辑从上到下写代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类 ...

  4. python面向对象基础

    面向对象基础 1. 简述 编程方式: 面向过程: 根据代码在脚本的堆叠顺序,从上到下依次执行 函数式编程:将相同功能的代码封装到函数中,直接调用即可,减少代码重复性 面向对象:对函数进行分类和封装,将 ...

  5. java基础学习05(面向对象基础02)

    面向对象基础02 实现的目标 1.String类的使用2.掌握this关键字的使用3.掌握static关键字的使用4.了解内部类 String类 实例化String对象一个字符串就是一个String类 ...

  6. java基础学习05(面向对象基础01--类实例分析)

    面向对象基础01(类实例分析) 实现的目标 1.如何分析一个类(类的基本分析思路) 分析的思路 1.根据要求写出类所包含的属性2.所有的属性都必须进行封装(private)3.封装之后的属性通过set ...

  7. java基础学习05(面向对象基础01)

    面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...

  8. 8.python笔记之面向对象基础

    title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...

  9. 【重走Android之路】【Java面向对象基础(三)】面向对象思想

    [重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想   1 面向对象的WWH   1.1 What--什么是面向对象         首先,要理解“对象”.在Thinkin ...

随机推荐

  1. 懒加载session 无法打开 no session or session was closed 解决办法(完美解决)

           首先说明一下,hibernate的延迟加载特性(lazy).所谓的延迟加载就是当真正需要查询数据时才执行数据加载操作.因为hibernate当中支持实体对象,外键会与实体对象关联起来.如 ...

  2. Java中的多态

    1.多态:具有表现多种形态的能力的特征 父类: public abstract class Animal {public abstract void Say();} 子类: public class ...

  3. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  4. iOS---iOS10适配iOS当前所有系统的远程推送

    一.iOS推送通知简介 众所周知苹果的推送通知从iOS3开始出现, 每一年都会更新一些新的用法. 譬如iOS7出现的Silent remote notifications(远程静默推送), iOS8出 ...

  5. ASP.NET MVC5+EF6+EasyUI 后台管理系统(67)-MVC与ECharts

    系列目录 ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Fire ...

  6. 学习ASP.NET Core,怎能不了解请求处理管道[2]: 服务器在管道中的“龙头”地位

    ASP.NET Core管道由注册的服务器和一系列中间件构成.我们在上一篇中深入剖析了中间件,现在我们来了解一下服务器.服务器是ASP .NET Core管道的第一个节点,它负责完整请求的监听和接收, ...

  7. so 问题来了,你现在值多少钱?

    年底了一大帮人都写着年底总结,总结一年做过的事.错过的事和做错的事.增长了多少本事,找没找到女朋友……来年做好升职加薪,要么做跳槽的准备,程序猿又开始浮躁了……. so 问题来了,你现在值多少钱? 这 ...

  8. 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)

    搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...

  9. Entity Framework 教程——DBContext

    DBContext: 在之前的章节<创建实体数据模型>中,EDM为我们创建了SchoolDBEntities 类,它派生子System.Data.Entity.DbContext这个类,这 ...

  10. javaScript中的小细节-script标签中的预解析

    首先介绍预解析,虽然预解析字面意思很好理解,但是却是出坑出的最多的地方,也是bug经常会有的地方,利用好预解析的特性可以解决很多问题,并且提高代码的质量及数量,浏览器在解析代码前会把变量的声明和函数( ...