Asp.Net Ajax 学习笔记21 VS2008的JavaScript代码提示功能

来源:互联网 发布:手机卫星定位软件 编辑:程序博客网 时间:2024/05/16 01:23
 

新一篇: C#面向对象设计模式纵横谈 学习笔记9 Composite 组合(结构型模式) | 旧一篇: C#面向对象设计模式纵横谈 学习笔记8 Bridge桥接(结构型模式)

这次课程主要讲的是VS2008的环境问题,其中包含

  • JavaScript Intellisense JavaScript智能提示
  • JavaScript Comment JavaScript注释

1、JavaScript Intellisense功能

  • 自动识别变量的运行时类型
  • 自动判断方法返回类型
  • 自动识别引用的JS文件内容
  • Microsoft AJAX Library支持

有几个详细的说明

  1. 使用javascript的src引入的js文件中的方法,可以生成智能提示
  2. 如果要引入支持Asp.Net Ajax Library支持的js文件,需要在js文件头中加入
    /// <reference name="MicrosoftAjax.js"/>
    代码,表明在js文件中引入别的js文件,在name后可以加上程序集的名称也就是Assembly="..."。如果引入当前项目的js文件可以使用path元素,指定js的路径。当然在页面上引入支持Ajax Libaray的js文件使用ScriptManager的ScriptReference节点。
  3. 引入一个WebService也可以生成智能提示。
  4. VS2008的智能提示功能可以检测代码的逻辑性。如if语句中的判断等于的符号写成了=号,那么会给出消息提示

2、JavaScript Comment功能

类似于.net中的注释功能,使用XML形式为JavaScript的各成员做注释,供VS 2008的JavaScript Intellisense使用,并用于自动生成文档。

  1. 提供成员的描述信息
    <summary>
        Description
    </summary>
  2. 提供对于参数的描述信息
    <param name="parameterName“ mayBeNull="true|false“
    optional
    ="true|false“ integer="true|false"
    type
    =“ParameterType (Number, String, etc)“
    parameterArray
    ="true|false“ domElement="true|false“
    elementType
    ="ArrayElementType“
    elementInteger="
    true|false“
    elementDomElement
    ="true|false“
    elementMayBeNull="
    true|false">
    Description
    </param>
  3. 对方法的返回值进行描述
    <returns type="ValueType“
    integer="
    true|false“
    domElement
    =“true|false”
    mayBeNull="true|false”
    elementType="
    ArrayElementType“
    elementInteger
    ="true|false“
    elementDomElement="
    true|false“
    elementMayBeNull
    ="true|false">
    Description
    </returns>
  4. 对属性的值进行描述
    <value type="ValueType" integer="true|false“
    domElement="
    true|false“
    mayBeNull
    ="true|false“
    elementType="
    ArrayElementType"
    elementInteger
    ="true|false“
    elementDomElement="
    true|false“
    elementMayBeNull
    ="true|false">
    Description
    </value>
  5. 对于域变量或枚举项进行注释
    <field name=“fieldName“ type="FieldType“
    integer="
    true|false“ domElement="true|false“
    mayBeNull="
    true|false“ static=“true|false”
    elementType="ArrayElementType“
    elementInteger="
    true|false“
    elementDomElement
    ="true|false“
    elementMayBeNull="
    true|false">
    Description
    </field>

详细说明一下里面的属性的功能。

mayBeNull:判断值是否可以为空值。

optional:是否是必填参数。

integer:一个变量如果是Number类型,决定这个类型是否是整数

parameterArray:变量是否是一个Array

domElement:判断变量是否是一个文档模型里的成员。

elementType:如果变量是一个数组,那么描述这个数组里的成员类型。

elementInteger:如果数组成员是Number类型,描述这个数组里的成员是否是整形。

elementDomElement:描述数组成员是否是文档对象。

elementMayBeNull:描述数组成员可否为空

static:描述类成员是否是静态的

注意:在VS2008中javascript的描述应该写在方法的{符号之后,包括域变量或枚举项描述写在构造函数的{符号之后,如下例

Demo.MyCommentedClass = function() {
    
/// <summary>It's MyCommentedClass's description</summary>
}

Demo.MyCommentedClass.prototype 
= {

    myMethod : 
function(p) {
        
/// <summary>It's MyCommentedClass's "myMethod" method</summary>
        /// <param name="p" type="Number" integer="true" mayBeNull="true">An integer</param>
        /// <returns type="Demo.MyEnum">Just try it</returns>
    }
,
    
    get_myDiv : 
function() {
        
/// <summary>That's an property</summary>
        /// <value type="Object" domElement="true">This returns an div element</value>
    }

}