dim什么意思,是不是数字,如果想定义为字母,怎么弄。
<%
Dim id
id = Cint(Trim(Request.QueryString("id")))
response.write ""&id&""
%>
?id=123好使
?id=abc不好使
怎么弄?
我做的是ASP网页,不但是字母,还有_-.等字符。
Dim strQQMailTip = "发电量可将"
Visual Basic 语言参考
Dim 语句
在模块、类、结构、过程或块级使用以声明和分配变量的存储空间。
[ <attrlist> ] [{ Public | Protected | Friend | Protected Friend |
Private | Static }] [ Shared ] [ Shadows ] [ ReadOnly ]
Dim [ WithEvents ] name[ (boundlist) ] [ As [ New ] type ] [ = initexpr ]
各部分说明
attrlist
可选项。属性列表,应用于此语句中声明的变量。多个属性以逗号分隔。
Public
可选项。用 Public 关键字声明的变量具有公共访问权限。对于公共变量的可访问性没有任何限制。
仅可以在模块、命名空间或文件级使用 Public。这意味着可以在源文件中或在模块、类或结构内(但不在过程内)声明公共变量。如果指定了 Public,也可以省略 Dim 关键字。
Protected
可选项。用 Protected 关键字声明的变量具有受保护的访问权限。仅可以从其自己的类或派生类中访问它们。受保护访问不是友元访问的超集。
仅可以在类级使用 Protected。这就是说可以在类的内部声明受保护的变量,而不能在过程内部以及模块、命名空间或文件级进行声明。仅可以用 Protected 声明该类的成员。如果指定了 Protected,也可以省略 Dim 关键字。
Friend
可选项。用 Friend 关键字声明的变量具有友元访问权限。可从它们的声明上下文内和同一程序中的任何位置访问它们。
仅可以在模块、命名空间或文件级使用 Friend。这意味着可以在源文件中或在模块、类或结构内(但不在过程内)声明友元变量。如果指定了 Friend,也可以省略 Dim 关键字。
Protected Friend
可选项。使用 Protected Friend 关键字声明的变量同时具有受保护访问权限和友元访问权限。在同一程序集中任何位置的代码、变量自身类中的代码和任何派生类中的代码都可以使用这些变量。
仅可以在类级使用 Protected Friend。这就是说可以在类的内部声明受保护的友元变量,而不能在过程内部以及模块、命名空间或文件级进行声明。仅可以用 Protected Friend 声明该类的成员。如果指定了 Protected Friend,也可以省略 Dim 关键字。
Private
可选项。用 Private 关键字声明的变量具有私有访问权限。只可从它们的声明上下文(包括从过程等任何嵌套类型的成员)中来访问它们。
只能在模块级使用 Private。这就是说可以在模块、类或结构内部声明私有变量,而不能在命名空间或文件级以及过程内部进行声明。如果指定了 Private,也可以省略 Dim 关键字。
Static
可选项。用 Static 关键字声明的变量在声明它们的过程终止后保持存在,并保留它们的最新值。
仅可以在过程级使用 Static。这意味着可以在过程或过程的块内(但不是在类或模块级)声明静态变量。如果指定了 Static,也可以省略 Dim 关键字。
在同一变量声明中,不能同时指定 Static 和 Shared(或 Shadows)。
Shared
可选项。指示该变量是共享的。这意味着它不与类或者结构的特定实例相关联。可以通过用类名或结构名或者用类或结构的特定实例的变量名限定共享变量来访问它。
仅可以在模块、命名空间或文件级使用 Shared。这意味着可以在源文件中或者在模块、类或结构内(但不在过程内)声明共享变量。如果指定了 Shared,也可以省略 Dim 关键字。
不能在同一个变量声明中同时指定 Static 和 Shared。
Shadows
可选项。指示该变量隐藏基类中的同名编程元素或重载元素集。可以用其他任何类型的元素来隐藏任何类型的被声明元素。被隐藏的元素在隐藏它的派生类内不可用,除非隐藏元素不可访问,例如,如果它为 Private。
仅可以在模块、命名空间或文件级中使用 Shadows。这意味着可以在源文件中或者在模块、类或结构内(但不在过程内)声明隐藏变量。如果指定了 Shadows,也可以省略 Dim 关键字。
不能在同一变量声明中同时指定 Static 和 Shadows。
ReadOnly
可选项。只能读取但不能写入用 ReadOnly 关键字声明的变量。这在创建引用类型的常数成员,如具有预设数据成员的对象变量时很有用。
仅可以在模块、命名空间或文件级使用 ReadOnly。这意味着可以在源文件中或者在模块、类或结构内(但不在过程内)声明只读变量。如果指定了 ReadOnly,也可以省略 Dim 关键字。
WithEvents
可选项。该关键字指定 name 为一个对象变量,该变量引用可以引发事件的类示例。可以使用 WithEvents 声明任意多的单个变量,但是不能以此方式声明数组。
如果使用 WithEvents 关键字,则不能将 name 声明为 Object。必须将其声明为可以引发事件的特定类。
name
必选项。变量名称。必须是有效的 Visual Basic 标识符。可以在同一声明语句中声明任意多的变量,指定每个变量的 name 部分并提供数组的 boundlist 部分。以逗号分隔多个变量。
可以将若干变量声明为具有同一数据类型。还可以指定不同变量或变量组的不同类型。每个变量采用在其 name 部分后遇到的第一个 As 子句中指定的数据类型。
boundlist
可选项。非负的整数列表,表示数组变量维度的上限。以逗号分隔多个上限。数组可以具有最多 60 维。
在 boundlist 中的每个值都指定维度的上限,而不是长度。下限总是为零,因此每一维度的下标在 0 与上限值之间变化。
可以使用 -1 来声明数组维数的上限。这表示数组为空但不是 Nothing,某些公共语言运行库函数需要进行这种区分。然而,Visual Basic 代码不能成功访问此类数组。如果试图这样做,则在执行期间会发生 IndexOutOfRangeException 错误。
New
可选项。使对象即刻创建的关键字。如果在声明对象变量时使用 New,则在执行 Dim 语句时会创建该对象的一个新实例。
type
除非 Option Strict 是 On,否则是可选项。变量的数据类型。可以是 Boolean、Byte、Char、Date、Decimal、Double、Integer、Long、Object、Short、Single 或 String;或者是枚举、结构、类或接口的名称。可以为每个定义的变量使用单独 As 子句,或者可以通过使用公共 As 子句将若干变量定义为同一类型。
如果没有指定 type,则变量采用 initexpr 的数据类型。如果确实指定了 type,则 initexpr 的数据类型必须可转换为 type。如果既不存在 type 又不存在 initexpr,则数据类型默认为 Object。
initexpr
可选项。创建时被计算为和被赋予该变量的表达式。如果用同一 As 子句声明了不止一个变量,则不能为该变量组提供 initexpr。
attrlist 部分中的每个属性具有以下语法和组成部分:
attrname [({ attrargs | attrinit })]
attrlist 部分
attrname
必选项。特性名。必须是有效的 Visual Basic 标识符。
attrargs
可选项。该特性的定位参数列表。多个参数以逗号分隔。
attrinit
可选项。该特性的字段或属性初始值设定项列表。多个初始值设定项以逗号分隔。
备注
用 Dim 声明的变量对包含 Dim 语句的区域内的所有代码都可用。如果它们是在模块、类或结构中(但在过程外)声明的,则可从该模块、类或结构中的任何地方访问它们。若要更详细地指定它们的可访问性,请包含 Public、Protected、Friend、Protected Friend 或 Private 关键字。
Private TryCount As Integer
Protected Salary As Decimal
Friend ValidDate As Date
Public MaximumAllowed As Double
Protected Friend CurrentUserName As String
在过程或块内声明的变量只能从该过程或块中进行访问。不能将任何可访问性关键字用于这些变量。它们的声明语句必须使用 Dim 或 Static。
Dim Counter As Integer
Static TotalSales As Double
Dim 语句可以声明变量的数据类型并初始化它的内容。下面示例中的声明语句声明 Integer 变量、Boolean 变量和对象变量。它们分别初始化为 10、True 以及 System.Windows.Forms 命名空间中 Label 类的新建实例。
Dim Quantity As Integer = 10
Dim FirstTry As Boolean = True
Dim MyLabel As New System.Windows.Forms.Label
如果没有指定变量的初始化值,则 Visual Basic 将之初始化成其数据类型的默认值。默认的初始化值如下:
所有数字类型(包括 Byte)为 0。
Char 为二进制 0。
所有引用类型(包括 Object、String 和所有数组)为 Nothing。
Boolean 为 False。
Date 为 1 年 1 月 1 日上午 12:00。
初始化结构或数组的每一元素,如同它是单独的变量一样。
通过使用大括号 ({}) 括住初始化值可以初始化数组的值。下面的示例创建具有四个元素的数组:
Dim A1() As Integer = {0, 1, 2, 3}
对于多维数组,用大括号括住每一个单独的维。元素按行优先的顺序指定。下面的示例将说明这一点:
' Initialize each array element to its row index + its column index.
Dim A2( , ) As Integer = {{0+0, 0+1, 0+2}, {1+0 ,1+1, 1+2}}
注意 应该将所有声明语句放在它们出现的代码区的开头,例如模块或过程。如果声明语句初始化变量的值,则应该在任何其他语句引用该变量之前执行它。
公共变量可以为早期绑定或晚期绑定。受保护的、友元和私有变量不可以是晚期绑定的。这意味着无法访问晚期绑定对象变量上的成员,除非声明其为 Public。如果试图这样做,编译器不会生成错误,但是在运行时出现 MissingMemberException 错误。
静态变量比过程(在其中声明该静态变量)的静态变量具有更长的生存期。变量的生存期边界取决于声明该过程的位置以及它是否为 Shared。
如果过程在模块中声明,则在第一次调用过程时初始化其静态变量,并且它们继续存在直到程序终止执行。
如果在类或结构中将过程声明为 Shared,则在第一次调用过程(在特定实例上或在类或结构本身上)时初始化其静态变量。它们保持存在,直到程序终止。
如果过程在类或结构中声明并且不是 Shared,则其静态变量与该类或结构的每一个实例关联。第一次在该实例中调用过程时初始化它们,并且它们继续存在直到释放该实例。
示例
该示例使用 Dim 语句声明变量和数组。数组下标的下限总是 0,上限是出现在 Dim 语句中的值。
' Declarations do not have to initialize their variables.
' AnyValue and MyValue are initialized by default to Nothing.
Dim AnyValue, MyValue As Object
' Number is initialized by default to 0.
Dim Number As Integer
' Multiple declarations can be of the same data type or different types.
Dim FirstNumber, SecondNumber, ThirdNumber As Integer
Dim MyDate As Date, MyValue As Single, MySwitch As Boolean
' DayArray is an array of 51 Objects indexed from 0 through 50.
Dim DayArray(50) As Object
' Matrix2 is a two-dimensional array of type Integer.
Dim Matrix2(3, 4) As Integer
' Matrix3 is a three-dimensional array of type Double.
Dim Matrix3(5, 9, 5) As Double
' BirthDay is an array of 11 dates indexed from 0 through 10.
Dim BirthDay(10) As Date
' MyArray is an array of objects. The length of the array is assigned
' when another statement assigns an array object to MyArray.
Dim MyArray() As Object
请参见
Visual Basic 语言参考
Dim 语句
在模块、类、结构、过程或块级使用以声明和分配变量的存储空间。
[ <attrlist> ] [{ Public | Protected | Friend | Protected Friend |
Private | Static }] [ Shared ] [ Shadows ] [ ReadOnly ]
Dim [ WithEvents ] name[ (boundlist) ] [ As [ New ] type ] [ = initexpr ]
各部分说明
attrlist
可选项。属性列表,应用于此语句中声明的变量。多个属性以逗号分隔。
Public
可选项。用 Public 关键字声明的变量具有公共访问权限。对于公共变量的可访问性没有任何限制。
仅可以在模块、命名空间或文件级使用 Public。这意味着可以在源文件中或在模块、类或结构内(但不在过程内)声明公共变量。如果指定了 Public,也可以省略 Dim 关键字。
Protected
可选项。用 Protected 关键字声明的变量具有受保护的访问权限。仅可以从其自己的类或派生类中访问它们。受保护访问不是友元访问的超集。
仅可以在类级使用 Protected。这就是说可以在类的内部声明受保护的变量,而不能在过程内部以及模块、命名空间或文件级进行声明。仅可以用 Protected 声明该类的成员。如果指定了 Protected,也可以省略 Dim 关键字。
Friend
可选项。用 Friend 关键字声明的变量具有友元访问权限。可从它们的声明上下文内和同一程序中的任何位置访问它们。
仅可以在模块、命名空间或文件级使用 Friend。这意味着可以在源文件中或在模块、类或结构内(但不在过程内)声明友元变量。如果指定了 Friend,也可以省略 Dim 关键字。
Protected Friend
可选项。使用 Protected Friend 关键字声明的变量同时具有受保护访问权限和友元访问权限。在同一程序集中任何位置的代码、变量自身类中的代码和任何派生类中的代码都可以使用这些变量。
仅可以在类级使用 Protected Friend。这就是说可以在类的内部声明受保护的友元变量,而不能在过程内部以及模块、命名空间或文件级进行声明。仅可以用 Protected Friend 声明该类的成员。如果指定了 Protected Friend,也可以省略 Dim 关键字。
Private
可选项。用 Private 关键字声明的变量具有私有访问权限。只可从它们的声明上下文(包括从过程等任何嵌套类型的成员)中来访问它们。
只能在模块级使用 Private。这就是说可以在模块、类或结构内部声明私有变量,而不能在命名空间或文件级以及过程内部进行声明。如果指定了 Private,也可以省略 Dim 关键字。
Static
可选项。用 Static 关键字声明的变量在声明它们的过程终止后保持存在,并保留它们的最新值。
仅可以在过程级使用 Static。这意味着可以在过程或过程的块内(但不是在类或模块级)声明静态变量。如果指定了 Static,也可以省略 Dim 关键字。
在同一变量声明中,不能同时指定 Static 和 Shared(或 Shadows)。
Shared
可选项。指示该变量是共享的。这意味着它不与类或者结构的特定实例相关联。可以通过用类名或结构名或者用类或结构的特定实例的变量名限定共享变量来访问它。
仅可以在模块、命名空间或文件级使用 Shared。这意味着可以在源文件中或者在模块、类或结构内(但不在过程内)声明共享变量。如果指定了 Shared,也可以省略 Dim 关键字。
不能在同一个变量声明中同时指定 Static 和 Shared。
Shadows
可选项。指示该变量隐藏基类中的同名编程元素或重载元素集。可以用其他任何类型的元素来隐藏任何类型的被声明元素。被隐藏的元素在隐藏它的派生类内不可用,除非隐藏元素不可访问,例如,如果它为 Private。
仅可以在模块、命名空间或文件级中使用 Shadows。这意味着可以在源文件中或者在模块、类或结构内(但不在过程内)声明隐藏变量。如果指定了 Shadows,也可以省略 Dim 关键字。
不能在同一变量声明中同时指定 Static 和 Shadows。
ReadOnly
可选项。只能读取但不能写入用 ReadOnly 关键字声明的变量。这在创建引用类型的常数成员,如具有预设数据成员的对象变量时很有用。
仅可以在模块、命名空间或文件级使用 ReadOnly。这意味着可以在源文件中或者在模块、类或结构内(但不在过程内)声明只读变量。如果指定了 ReadOnly,也可以省略 Dim 关键字。
WithEvents
可选项。该关键字指定 name 为一个对象变量,该变量引用可以引发事件的类示例。可以使用 WithEvents 声明任意多的单个变量,但是不能以此方式声明数组。
如果使用 WithEvents 关键字,则不能将 name 声明为 Object。必须将其声明为可以引发事件的特定类。
name
必选项。变量名称。必须是有效的 Visual Basic 标识符。可以在同一声明语句中声明任意多的变量,指定每个变量的 name 部分并提供数组的 boundlist 部分。以逗号分隔多个变量。
可以将若干变量声明为具有同一数据类型。还可以指定不同变量或变量组的不同类型。每个变量采用在其 name 部分后遇到的第一个 As 子句中指定的数据类型。
boundlist
可选项。非负的整数列表,表示数组变量维度的上限。以逗号分隔多个上限。数组可以具有最多 60 维。
在 boundlist 中的每个值都指定维度的上限,而不是长度。下限总是为零,因此每一维度的下标在 0 与上限值之间变化。
可以使用 -1 来声明数组维数的上限。这表示数组为空但不是 Nothing,某些公共语言运行库函数需要进行这种区分。然而,Visual Basic 代码不能成功访问此类数组。如果试图这样做,则在执行期间会发生 IndexOutOfRangeException 错误。
New
可选项。使对象即刻创建的关键字。如果在声明对象变量时使用 New,则在执行 Dim 语句时会创建该对象的一个新实例。
type
除非 Option Strict 是 On,否则是可选项。变量的数据类型。可以是 Boolean、Byte、Char、Date、Decimal、Double、Integer、Long、Object、Short、Single 或 String;或者是枚举、结构、类或接口的名称。可以为每个定义的变量使用单独 As 子句,或者可以通过使用公共 As 子句将若干变量定义为同一类型。
如果没有指定 type,则变量采用 initexpr 的数据类型。如果确实指定了 type,则 initexpr 的数据类型必须可转换为 type。如果既不存在 type 又不存在 initexpr,则数据类型默认为 Object。
initexpr
可选项。创建时被计算为和被赋予该变量的表达式。如果用同一 As 子句声明了不止一个变量,则不能为该变量组提供 initexpr。
attrlist 部分中的每个属性具有以下语法和组成部分:
attrname [({ attrargs | attrinit })]
attrlist 部分
attrname
必选项。特性名。必须是有效的 Visual Basic 标识符。
attrargs
可选项。该特性的定位参数列表。多个参数以逗号分隔。
attrinit
可选项。该特性的字段或属性初始值设定项列表。多个初始值设定项以逗号分隔。
备注
用 Dim 声明的变量对包含 Dim 语句的区域内的所有代码都可用。如果它们是在模块、类或结构中(但在过程外)声明的,则可从该模块、类或结构中的任何地方访问它们。若要更详细地指定它们的可访问性,请包含 Public、Protected、Friend、Protected Friend 或 Private 关键字。
Private TryCount As Integer
Protected Salary As Decimal
Friend ValidDate As Date
Public MaximumAllowed As Double
Protected Friend CurrentUserName As String
在过程或块内声明的变量只能从该过程或块中进行访问。不能将任何可访问性关键字用于这些变量。它们的声明语句必须使用 Dim 或 Static。
Dim Counter As Integer
Static TotalSales As Double
Dim 语句可以声明变量的数据类型并初始化它的内容。下面示例中的声明语句声明 Integer 变量、Boolean 变量和对象变量。它们分别初始化为 10、True 以及 System.Windows.Forms 命名空间中 Label 类的新建实例。
Dim Quantity As Integer = 10
Dim FirstTry As Boolean = True
Dim MyLabel As New System.Windows.Forms.Label
如果没有指定变量的初始化值,则 Visual Basic 将之初始化成其数据类型的默认值。默认的初始化值如下:
所有数字类型(包括 Byte)为 0。
Char 为二进制 0。
所有引用类型(包括 Object、String 和所有数组)为 Nothing。
Boolean 为 False。
Date 为 1 年 1 月 1 日上午 12:00。
初始化结构或数组的每一元素,如同它是单独的变量一样。
通过使用大括号 ({}) 括住初始化值可以初始化数组的值。下面的示例创建具有四个元素的数组:
Dim A1() As Integer = {0, 1, 2, 3}
对于多维数组,用大括号括住每一个单独的维。元素按行优先的顺序指定。下面的示例将说明这一点:
' Initialize each array element to its row index + its column index.
Dim A2( , ) As Integer = {{0+0, 0+1, 0+2}, {1+0 ,1+1, 1+2}}
注意 应该将所有声明语句放在它们出现的代码区的开头,例如模块或过程。如果声明语句初始化变量的值,则应该在任何其他语句引用该变量之前执行它。
公共变量可以为早期绑定或晚期绑定。受保护的、友元和私有变量不可以是晚期绑定的。这意味着无法访问晚期绑定对象变量上的成员,除非声明其为 Public。如果试图这样做,编译器不会生成错误,但是在运行时出现 MissingMemberException 错误。
静态变量比过程(在其中声明该静态变量)的静态变量具有更长的生存期。变量的生存期边界取决于声明该过程的位置以及它是否为 Shared。
如果过程在模块中声明,则在第一次调用过程时初始化其静态变量,并且它们继续存在直到程序终止执行。
如果在类或结构中将过程声明为 Shared,则在第一次调用过程(在特定实例上或在类或结构本身上)时初始化其静态变量。它们保持存在,直到程序终止。
如果过程在类或结构中声明并且不是 Shared,则其静态变量与该类或结构的每一个实例关联。第一次在该实例中调用过程时初始化它们,并且它们继续存在直到释放该实例。
示例
该示例使用 Dim 语句声明变量和数组。数组下标的下限总是 0,上限是出现在 Dim 语句中的值。
' Declarations do not have to initialize their variables.
' AnyValue and MyValue are initialized by default to Nothing.
Dim AnyValue, MyValue As Object
' Number is initialized by default to 0.
Dim Number As Integer
' Multiple declarations can be of the same data type or different types.
Dim FirstNumber, SecondNumber, ThirdNumber As Integer
Dim MyDate As Date, MyValue As Single, MySwitch As Boolean
' DayArray is an array of 51 Objects indexed from 0 through 50.
Dim DayArray(50) As Object
' Matrix2 is a two-dimensional array of type Integer.
Dim Matrix2(3, 4) As Integer
' Matrix3 is a three-dimensional array of type Double.
Dim Matrix3(5, 9, 5) As Double
' BirthDay is an array of 11 dates indexed from 0 through 10.
Dim BirthDay(10) As Date
' MyArray is an array of objects. The length of the array is assigned
' when another statement assigns an array object to MyArray.
Dim MyArray() As Object
请参见
温馨提示:答案为网友推荐,仅供参考
第1个回答 2006-01-10
因为VBScript是脚本语言,定义变量的时候,变量是没有类型的,根据你的赋值来决定变量的类型,比如你的这个代码,应该改一下:
<%
Dim id
id = Cint(Trim(Request.QueryString("id")))
Response.Write id
%>
这里id根据你的查询字符串来决定,这里如果传递的是数字,那id就是数字类型的,如果是字符串,那就是字符串类型的。本回答被提问者采纳
<%
Dim id
id = Cint(Trim(Request.QueryString("id")))
Response.Write id
%>
这里id根据你的查询字符串来决定,这里如果传递的是数字,那id就是数字类型的,如果是字符串,那就是字符串类型的。本回答被提问者采纳