c#-【强迫症】编写C#程序时定义属性遇到的问题

问题描述

【强迫症】编写C#程序时定义属性遇到的问题

在一个类中定义属性时:

        private string adminName;

        public string AdminName
        {
            get { return adminName; }
            set { adminName = value; }
        }

这算比较常规的写法吧。

可是我在阅读开源项目的例子时,见到了这样的写法

                public string AdminName { get; set; }

请问,上面的这种写法正确吗?定义类的属性时,这么用对吗?
与第一中写法有什么区别和联系呀?

解决方案

对的!在C#中这叫自动属性
快捷键是prop Tab2次

这是简单的属性,但是在属性中有逻辑代码是不可以这样写的
例如:
public int Age
{
get{}
set{}
}
就是错误的,这是可以发现属性并没有对应的字段
终结:

有字段,就不可以使用简单属性

解决方案二:

对的!在C#中这叫自动属性
快捷键是prop Tab2次

这是简单的属性,但是在属性中有逻辑代码是不可以这样写的
例如:
public int Age
{
get{}
set{}
}
就是错误的,这是可以发现属性并没有对应的字段
终结:

有字段,就不可以使用简单属性

解决方案三:

两种写法都正确,就相当于简写吧

解决方案四:

问题解决了。
下面是我通过楼上那位朋友提供的自动属性查找到的,其实下面的这个博客跟楼上朋友说的都是对的,相当于我看了两遍才明白。
搞定了。谢谢朋友们。

http://m.baidu.com/from=1002253n/bd_page_type=1/ssid=0/uid=0/baiduid=A7D787C581F4401474E61DE7D55F3D9B/w=0_10_c%23%E4%B8%AD%E8%87%AA%E5%8A%A8%E5%B1%9E%E6%80%A7/t=zbios/l=3/tc?ref=www_zbios&pu=sz%401320_480%2Ccuid%40liSqt0uL280s82afg8SIugacv8YIuHie_aHliga5Su8KP28C_u2ki_uzvtjRa2fHA%2Ccua%40_a-qi4uq-igBNE6lI5me6NIy2IjUI2f6AqqqB%2Ccut%405tVjOrktHkrpkShJ_h2UIgN0vtyNNmojipQmA%2Cosname%40baiduboxapp%2Cctv%402%2Ccfrom%401013672i%2Ccen%40cuid_cua_cut%2Ccsrc%40app_mainbox_txt%2Cta%40zbios_2_4.4_6_6.9&lid=11951195409380102968&order=1&vit=osres&tj=www_normal_1_0_10_title&m=8&srd=1&cltj=cloud_title&dict=30&title=c%E8%87%AA%E5%8A%A8%E5%B1%9E%E6%80%A7-%E5%91%86%E6%B2%B3%E9%A9%AC-%E5%8D%9A%E5%AE%A2%E5%9B%AD&sec=7479&di=fa04c82614f22df4&bdenc=1&tch=124.0.0.0.0.0&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_ytK1DK6mlrte4viZQRAWDzxQynTUS4stmGGe2dYtXLR0WYn7wV2mqxhxmdN78TwdcbqhR_2JRYNcNkk2dq

时间: 2025-01-21 19:23:58

c#-【强迫症】编写C#程序时定义属性遇到的问题的相关文章

c语言-为什么编写c程序时,200*5*0.85等于849????

问题描述 为什么编写c程序时,200*5*0.85等于849???? 不应该等于850吗??? #include int main(void) { const int danjia = 5; int shuliang = 0; int zongjia = 0; int zan = 0; printf("shurushuliang:"); scanf("%d",&shuliang); zan = shuliang * danjia; if((zan >

xe8-XE8编写andriod程序时怎么断点调试?

问题描述 XE8编写andriod程序时怎么断点调试? XE8在编写android程序时怎么使用断点调试?就像eclipse那样. 我在真机环境下调试,编写的app能自动安装到手机,但是打的断点完全没效果. 是不是只能利用wind32平台? 解决方案 http://www.cnblogs.com/weixing/p/3210466.html

请教大神一条编写wpf程序时关于xaml的问题

问题描述 请教大神一条编写wpf程序时关于xaml的问题 为何会出现这样的错误?怎么解决? 解决方案 解决方案二: 就算是你可以不用了解他们的一个运行原理,但是最起码你得清楚命名之间的一个一一对应的关系吧 解决方案三: 应该放在 Window.Resource 节点中.可以作为整个window的资源.

在构建 SaaS 应用程序时定义一个多线程阈值

回到云岛:所有 SaaS 用户都很高兴.因为他们能获得快速响应.因为这些用户惟一拥有的控制权就是对 访问应用程序的控制,他们不担心应用程序是否有多线程例程:也不担心在云中有多少核心用于并行加速多线 程的处理.问题应用程序被成功地从内部多线程 COBOL 遗留系统中迁移出来. 当然,有一天,SaaS 应用程序的速度会慢下来,而且越来越慢:直到用户无法忍受.他们这时才发现: 只有一个核心在正 常运行,其余核心都发生了故障. SaaS 订阅仅限于两个核心,而不是所有四个核心. SaaS 应用程序近 来

在用c#编写天气预报程序时的错误,高手指教啊

问题描述 在ServiceModel客户端配置部分中,找不到名称"WeatherWebServiceSoap"和协定"Weather.WeatherWebServiceSoap"的终结点元素.这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此名称匹配的终结点元素 解决方案 解决方案二:你用的中国天气网?

C#应用程序(不是ASP),做成安装文件,系统里安装之后,在安装目录里面就是我写程序时定义项目,可以用记事打开

问题描述 我用VS2005C#写了一个程序有一个DBDAO类,4个form类,配置文件写了之后用VS2005自带的安装部置项做了个安装文件可是我在其它电脑安装之后,查看安装之后程序所在的目录,里面就是我写那4个form,DBDAO,配置文件app.config这太不安全,这些类和文件直接用记事体打开请问各位高手,我在做安装文件时有什么不对,或者做对,有什么方法,可把这些类或文件代码隐藏或以其它形式显示!急急急请不吝赐教!!

为Windows Phone和iOS编写应用程序

有许多文档介绍将应用程序从 iOS 移植到 Windows Phone,但是在本文中,我要从为这两种平台从 头开始编写新应用程序的前提开始讲起.我不会对这两种平台户的孰优孰劣做出价值评判.相反,我对 编写应用程序报以务实的态度,并描述在编写应用程序时这两种平台的异同之处. 作为 Windows Phone 团队的成员,我对 Windows Phone 平台充满热忱,但是本文的重点不是说一种平台优 于另一种平台,而是说平台是不同的,因此需要一些不同的编程方法.尽管您可以使用 MonoTouch 系

visual studio 2010-64位系统编写MFC程序通过ado连接Oracle在项目属性设置为win32平台时调试出错

问题描述 64位系统编写MFC程序通过ado连接Oracle在项目属性设置为win32平台时调试出错 我64位的系统用VS2010编写MFC程序,通过ADO方式连接Oracle数据库,在项目属性中设置为x64平台时,程序调试可以正常的连接数据库并对数据库进行增删改查等操作:但是将项目属性设置为win32平台时,程序调试就停在连接数据库那一语句并报有未经处理的异常,请问到底是什么原因啊?应该如何解决? 解决方案 数据库引擎是否支持32bit程序访问.你的ADO等方式配置是否有平台依赖性的地方

VC++6.0和VS2005在编写MFC应用程序时,操作方面的差异

VC++6.0和VS2005在编写MFC应用程序时,操作方面的差异 一直用VC++6.0,对VS2005不太了解,下面简单的熟悉一下VS2005的一下功能,总结一下VS2005在编写MFC时候的应用. 1.    菜单项: 和VC6.0一样,也是找到资源视图,点击menu资源,在上面新建自己的菜单项.只是'属性',陈列的方式不同,VS2005陈列在右下角:在VC6.0中,我们对菜单项建立类向导,而在VS2005中,点右键,选择的是:'添加事件处理程序',然后再对话框里选择相应的消息类型,在类列表