study Mvc step by step (二) 关于MVC的一些C#特有语法

在我们即将进入ASP.NET开发大门的时候。我们需要先学习一些C#的特有语法。而且对于传统的webform的开发,我们介绍的这些C#特有语法并不是每个人都熟悉的.本节将介绍一个MVC优良程序员所需要的C#语言特性。

一:c#的基本特性

1.1使用自动实现的属性

c#属性特性让你暴露一个类的数据片段,这些数据以及如何设置和接收数据采取了一种松耦合的方式。就是说并不是直接和我们类中的字段相关联,而是通过一个对外的接口。我们首先看一下下面的这个叫做   "product"  类  类里面我们只有一个字段

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 河南云和数据
{
   public  class Product
    {
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

    }
}

名称为"Name"的属性。get代码块(成为getter)中的语句在读取该属性值时执行,而set代码块(成为 setter)中的语句则对这个属性赋值时执行(特殊变量value表示要赋予的值)。属性是由其他类来使用的,就好像它是一个字段一样,总而言之。在上述类中,name是字段。而Name是属性。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using 河南云和数据;
namespace CW
{
    class Program
    {
        static void Main(string[] args)
        {

            Product MyProduct = new Product();
            MyProduct.Name = "河南云和数据Rocky Ren";

            string procductname = MyProduct.Name;
            Console.WriteLine("Product name is {0}",procductname);
            Console.ReadKey();

        }
    }
}

通过属性赋值取值

你可以看出,属性值的读取和设置,就像对一个规则的字段进行读取操作一样,使用属性就要比使用字段好很多,因为你可以修改get和set块中的语句,而不需要修改依赖于这个属性的整个类。但是,当一个类中有很多属性时,事情就变得枯燥了,所有的getter和setter都要做同样的事情--填充字段。于是我们又要做一些冗长的事情。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 河南云和数据
{
   public  class Product
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        private string deacription;

        public string Deacription
        {
            get { return deacription; }
            set { deacription = value; }
        }

        private decimal price;

        public decimal Price
        {
            get { return price; }
            set { price = value; }
        }

    }
}

这里需要说明一点的是我们可以在字段中(ctrl+r+e)快速封装这些字段。

我们希望属性具有灵活性,但此刻又不需要自定义的getter和setter,解决方案是一种自动实现的属性,也成为”自动属性“他不需要getter和setter

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 河南云和数据
{
   public  class Product
    {
       public int Id { set; get; }
       public string Name { set; get; }
       public string Description { set; get; }
       public decimal Price { set; get; }
       public string Category { set; get; }

    }
}

在使用自动属性的时候,有两个关键点要注意。第一是不定义getter和setter的体,第二是不定义由该属性返回的字体。这两者都由C#编译器在这个类被建立时自动完成.使用自动属性与使用规则没什么不同,形成便于代码阅读的代码,并且仍然保持了属性的灵活性,如果需要改变一个属性实现的方式,还可以返回规则属性的格式。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 河南云和数据
{
   public  class Product
    {
       private int id;
       public int Id { set; get; }
       private string name;
       public string Name { set; get; }
       private string description;
       public string Description { set; get; }
       private string price;
       public decimal Price { set; get; }
       public string Category { set; get; }

    }
}

使用对象和集合初始化器

study Mvc step by step (二) 关于MVC的一些C#特有语法

时间: 2024-12-28 01:32:51

study Mvc step by step (二) 关于MVC的一些C#特有语法的相关文章

study Mvc step by step (一) 什么是Mvc啊?

当我们开始逐步把Net平台上面的Web开发从webform过度到MVC 开发的时候.我们总想弄清楚Mvc到底是什么??其实Mvc并不是Net特有的一种开发技术.而是一种软件开发的模式.早在上个世界80年代.Xerox PARC为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用.那么什么是Mvc呢? MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: Model(模型)表示应用程序核心(比如数据库记录列

study Mvc step by step (三)C#语言特性扩展方法

C#3.0之后推出了扩展方法.我们通常看到的方法都是和声明它的类相关联.扩展方法特性扩展这个边界,允许编写的方法和声明它的类之外的类关联. 要想知道可以如何使用这个特性,请看下面的代码.它包含类MyPerson.该类存贮了3个double类型的值,并含有一个构造函数和一个名称为sum的方法,该方法返回3个存储值得和. using System; using System.Collections.Generic; using System.Linq; using System.Text; usin

spring mvc + velocity 搭建实例程序maven版本并且使用的是tomcat容器而不是jetty(step by step)

笔者最近在学习spring mvc 查了很多资料,但用jsp的居多,但项目中需要用velocity,所以说就学习了一下,现将所查资料以及搭建过程陈述如下,供需要的人参考 1.楼主用的是eclipse+maven,如果需要安装请参照其他教程(网上能搜到很多,这里不多赘述) 2.创建maven工程: file--new--other--maven--maven project Group Id: org.o7planning Artifact Id: SpringMVCVelocity Packag

ASP.NET MVC +EasyUI 权限设计(二)环境搭建

请注明转载地址:http://www.cnblogs.com/arhat 今天突然发现博客园出问题了,老魏使用了PC,手机,平板都访问博客园了,都是不能正常的访问,原因是不能加载CSS,也就是不能访问common.cnblogs.com这个域名,一直出现"Aborted",非常的郁闷. 页面就是这样子的,不知道为什么,难道是不是我的3个终端有问题吧,还是园子的服务器有问题呢?还是路由器的问题呢?到现在这个问题还没解决,郁闷死了!弄得心情非常的不爽. 好吧,不在说这个问题了,开始我们的正

Spring MVC 学习总结(二)——控制器定义与@RequestMapping详解

一.控制器定义 控制器提供访问应用程序的行为,通常通过服务接口定义或注解定义两种方法实现. 控制器解析用户的请求并将其转换为一个模型.在Spring MVC中一个控制器可以包含多个Action(动作.方法). 1.1.实现接口Controller定义控制器 Controller是一个接口,处在包org.springframework.web.servlet.mvc下,接口中只有一个未实现的方法,具体的接口如下所示: package org.springframework.web.servlet.

(二)Spring MVC 搭建

一.导包 1.添加Spring的核心包 2.添加Spring MVC的核心包 二.在WEB-INFO/web.xml中配置前端控制器DispatcherServlet 1 <?xml version="1.0" encoding="utf-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.su

ORMBase对象/关系型数据库映射在MVC中的应用(二)

3.DataBase基类,查询方法返回值是List<T>,并且是分页的,ThePart.dll版本2.0中封装了一个PageInfo类,作为分页的类型.这种方法很机械,也很狗血..建议大家不这么用,下面这个例子是项目中同事写的.为了DataBase这个基类的操作数据库返回值各种类型,让人们知道各种情况的数据都可以处理.的这么一个目的,我还是把例子贴出来.我自己都难得去费神看. public static List<SportsBetRecords> SportsGetListPag

ExtJS MVC的搭建(二)

2.1要搭建一个MIS系统首先需要构建系统框架,建立框架视图viewport.js,代码如下所示: Ext.define('FLY.view.Viewport',{ extend:'Ext.container.Viewport', layout:'border', items: [{ region: 'north', xtype:'image', src:'image/bj2.png', height:100 }, { region: 'west', collapsible: true, tit

Spring MVC(二)--Spring MVC登陆实例

本文通过一个简单的登陆实例实现Spring MVC的流程,同时整合 MyBatis使用,流程是这样的: 1.访问一个URL进入登陆界面 2.输入正确的用户名和密码,成功则进入index页面,否则留在登陆页 一.配置web.xml 创建好WEB项目之后的第一步就是配置web.xml文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="3.0" xmlns=&