属性起什么作用?为什么不直接定义个变量就行了,还要VALUE和return.不明白啊

问题描述

`1

解决方案

解决方案二:
属性只是一个方法。Get方法和Set方法的集合,看起来舒服一点。
解决方案三:
属性可以控制使用者对该字段执行的操作
解决方案四:
你写控件就知道有什么用了
解决方案五:
属性最大的作用就是用于对私有变量的访问
解决方案六:
当你设定一个窗体的BackGroundColor之后,它的背景色就跟着变了,这就是属性的作用.
解决方案七:
属性其实还是方法只是C#为了迎合自然语言和人的思维习惯设置了一个叫属性的东东编译后,它还是会被便宜为get和set打头的方法
解决方案八:
我也很想知道阿!!
解决方案九:
引用4楼wei123456的回复:

属性最大的作用就是用于对私有变量的访问

说的好象有点道理,好象在窗体之间传递数据时用的很多:
解决方案十:
感觉属性的主要作用就是封装,其实是从delphi里学来的看起来比写getset方法好看点
解决方案十一:
引用5楼bwangel的回复:

当你设定一个窗体的BackGroundColor之后,它的背景色就跟着变了,这就是属性的作用.

頭像不錯,說的也對。
解决方案十二:
引用1楼yuwenge的回复:

属性只是一个方法。Get方法和Set方法的集合,看起来舒服一点。

纯属胡说八道
解决方案十三:
属性是面向对象的一种思想的体现,具体指的就是封装,直接定义变量是面向过程的思想通过属性可以封装内部操作,比如可以对某个字段进行只读操作,或者只写操作,
解决方案十四:
属性就相当于java里面的getXxxx()和setXxxx()方法
解决方案十五:
属性结合了字段和方法的多个方面。对于对象的用户,属性显示为字段,访问该属性需要相同的语法。对于类的实现者,属性是一个或两个代码块,表示一个get访问器和/或一个set访问器。当读取属性时,执行get访问器的代码块;当向属性分配一个新值时,执行set访问器的代码块。不具有set访问器的属性被视为只读属性。不具有get访问器的属性被视为只写属性。同时具有这两个访问器的属性是读写属性。使用属性是最大程度保持类中的成员变量不对外界暴露。可以限制外界对其访问的权限。与字段不同,属性不作为变量来分类。因此,不能将属性作为ref(C#参考)参数或out(C#参考)参数传递。属性具有多种用法:它们可在允许更改前验证数据;它们可透明地公开某个类上的数据,该类的数据实际上是从其他源(例如数据库)检索到的;当数据被更改时,它们可采取行动,例如引发事件或更改其他字段的值。属性也是为了一个类中的私有变量进行封装,这样做是为了跟好的面向对象,当然对类中私有变量的访问及设置也可以通过方法来实现,但没有属性来的简洁
解决方案:
属性是面向对象的一种思想的体现,具体指的就是封装属性赋值可以封装操作privateintavg;publicintAvg{get{if(avg==1)return2;elsereturnavg;}}但是变量却做不到
解决方案:
字段不是一个域,但属性是,因此可以用于做一些其它附加动作或引发事件除了它的对字段封装功能之外.
解决方案:
我给你举个例子,你就明白了:大家知道,窗体有个Location属性,用于确定窗体的位置如果是字段,更改这个值对窗体本身不会有什么影响,而如果是属性,就可以移动窗体到指定位置privatePoint_location;//字段publicPointLocation//属性{get{return_location;}set{_location=value;MoveWindowTo();//看这里,不仅仅更改了坐标值,还要把窗体移动到该坐标处,而字段不可能完成这样的任务}}
解决方案:
1、属性是为了更好面向对象

时间: 2024-11-08 23:27:56

属性起什么作用?为什么不直接定义个变量就行了,还要VALUE和return.不明白啊的相关文章

关于控件属性runat的作用

问题描述 刚学.NET问一个比较菜的问题如题另外,能不能解释一下ASPX文件是如何被编译的,谢谢 解决方案 解决方案二:服务器控件都要放在form里,同时都要有runat=server.解决方案三:关于控件属性runat的作用---------------表示脚本语言在服务器端运行解决方案四:cs就可以找到该控件

java中类定义的变量和类方法里面定义的变量有什么区别和联系

问题描述 java中类定义的变量和类方法里面定义的变量有什么区别和联系 java中类定义的变量和类方法里面定义的变量有什么区别和联系为什么要再方法当中定义变量,统一在类里面,方法外面定义变量不是更方便快捷么 解决方案 Java中的作用域非常容易理解就看大括号.一个变量的作用域始终是从定义的位置开始直到当前大括号结束.在这个范围之内就可以不使用任何前缀直接访问它.不在这个范围内那就必须得""想办法""访问它. 解决方案二: 类种定义的变量是类的成员变量,在所有的类方法

在循环体中定义的变量怎么不能到外面用??

问题描述 在循环体中定义的变量怎么不能到外面用??如:for(i=0;i<10;i++){respons.write(i);}respons.write(i);怎么这样会报错??上下文不存在i??帮我个忙``` 解决方案 解决方案二:变量作用域解决方案三:for循环中定义的变量局部于for循环的代码块(大括号内),循环之外不是他的作用域.(从你的代码看变量i应该不是局部变量,这样for(inti=0;i<10;i++)才是).你可以这样:inti;for(i=0;i<10;i++){re

定义静态变量小问题

问题描述 代码如下:publicpartialclass_Default:System.Web.UI.Page{publicstaticLabel[]list={Label1,Label2};//这句出现错误.(为什么?)protectedvoidPage_Load(objectsender,EventArgse){Label[]list2={Label1,Label2};}} 错误为:错误1字段初始值设定项无法引用非静态字段.方法或属性"_Default.Label1"D:MyDoc

CSS定义字体间距 字体行与行间距

CSS定义字体行间距 line-height:xxpx; CSS定义字体间距 下面我们讲述一下CSS的文本属性,还是先来看一下文本属性的详细列表: 属性     属性含义     属性值Word-spacing     定义了各个单词之间的间距     Normal<length>必须以长度为单位Letter-spacing        定义了每个字母之间的间距     同上Text-decoration     定义文字的"装饰"样式     None|underlin

js中定义一个变量并判断其是否为空的方法_javascript技巧

js中定义一个变量 var params=null;判断params不为空的方法: 复制代码 代码如下: if(params && params.hasOwnProperty("name")){} 其中:console.info(params);//结果为:Object {}

c语言-c小白求教指针问题(定义指针变量的位置)

问题描述 c小白求教指针问题(定义指针变量的位置) 请教问什么1和2都可以编译通过,但是写到3的位置报错呢 #include <stdio.h> int main(){ int a = 10; int b = 100; int c = 1; // 1.int *d = &c; int *point_1,*point_2; //2. int *d = &c; point_1 = &a; point_2 = &b; //3.int *d = &c; prin

delphi-Delphi中,怎么获取DLL中定义的变量

问题描述 Delphi中,怎么获取DLL中定义的变量 可以使用动态加载或静态加载的方式使用DLL中的方法,但是怎么能够获取DLL中定义的变量来使用它呢? 解决方案 要明确2个概念: 1.Dll是EXE的一个变种形态.它是可执行的. 2.Dll虽然由EXE调用,但执行读入内存后,Dll与EXE分别是独立的内存区域,相互不联系的.二者的数据(变量等)不能传递的. 为了能让Dll是EXE通联,往往可以通过以下几种方式建立联系. 1.发消息,它是单相思,消息发出后,对方知道否,接受了吗,不得而知. 2.

const的相关,修改定义的变量

问题描述 const的相关,修改定义的变量 const int a;与const int*piint *const pi;是不是不一样啊,前面的那个a的值不能通过a=8:和pi=&a的形式来修改吧,但是后面的那2个可以通过这两种中的一种修改的把,比如const int*pi中,不能对*pi进行修改,但是可以对pi进行重新赋值啊,这样不就间接改了*pi了吗,是这样的吗 解决方案 const int * pi 和const char * p是一样的,都是说明不能直接对指针指向的地址赋值,而可以修改指