
正文
vb.net模块语句 vbnet single
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
visual basic.net中,存在哪几种选择语句
经过长时间学习VB.NET条件语句vb.net模块语句,于是和大家分享一下vb.net模块语句,看完本文你肯定有不少收获vb.net模块语句,希望本文能教会你更多东西。在程序设计中,VB.NET条件语句能够根据表达式的值来决定代码的执行流程。在VB.NET中,条件分支语句有两种:If/Then/Else语句和Select/Case语句。
1. If/Then/Else语句
If/Then/Else语句是最常用的VB.NET条件语句。它的基本形式是:
If condition Then statements1 [Else statements2 ]
它表示:如果condition为True,那么就执行statements1;否则执行statements2。根据时间显示问候信息。
%
If Hour(Now)12 Then Response.Write ("Good morning! Cindy!")
If Hour(Now)=12 Then Response.Write ("Good noon! Cindy!")
If (Hour(Now)12 And Hour(Now)18) Then Response.Write ("Good afternoon! Cindy!")
If Hour(Now)=18 Then Response.Write ("Good evening! Cindy!")
%
在上面的例子中,函数Hour()是对给出的日期时间求它的小时数,Now函数用于返回当前的日期和时间。程序根据当时的时间判定是上午、中午还是下午,分别给出问候信息。vb.net模块语句我们看到,这个写法很简单,但是这个程序为vb.net模块语句了显示一条问候信息,要对Hour(Now)取值4次并且执行4次比较才能完成,从效率上考虑并不好。If/Then/Else语句还可以写成比较复杂的形式:
If condition_1 Then
statements_1
[ElseIf condition_m Then statements_m
[ElseIf condition_n Then…]]
[Else statements_2]
End If
这个语句可以检测多个条件。第一种写法要求语句在写的时候要在一行中写完,例如例2.4 的第2行的If语句。这条语句也可以采用第二种方法来写,方法如下:
If Hour(Now)12 Then
Response.Write ("Good Morning!Cindy!")
End If
建议用户采用后一种写法,因为这种方法更结构化,可读性好。当用户在调试大型软件的代码时,会发现,虽然看起来多写了几行语句,但好处却是很大的。根据时间显示问候信息。请注意这个例子的写法与上个例子中的写法在执行效率上的区别。
%
If Hour(Now)12 Then
Response.Write ("Good morning! Cindy!")
ElseIf Hour(Now)=12 Then
Response.Write ("Good noon! Cindy!")
ElseIf Hour(Now)=18 Then
Response.Write ("Good evening! Cindy!")
Else
Response.Write ("Good afternoon! Cindy!")
End If
%
上面的例子在执行的过程中,对于当前不同的时间,为了显示问候信息,执行的Hour(Now)的取值和比较的次数是不一样的:最少只要1次,最多需要3次。
2. Select/Case结构
当程序中的条件比较复杂,而且是根据同一个表达式的不同值执行不同操作的时候,用If/Then/Else语句来写就显得十分烦琐。这时可以考虑采用Select/Case结构来完成VB.NET条件语句。
Select/Case结构为:
Select Case testexpression
Case condition_1
statements_1
[… Case Else statements_n]
End Select
它表示:如果testexpression的值是Condition_1,就执行statements_1,以此类推,如果都不符合,就执行Statements_n。用Select/Case语句来实现问候信息的显示。
%
Select Case Hour(Now)
Case 0,1,2,3,4,5,6,7,8,9,10,11
Response.Write ("Good morning! Cindy!")
Case 12
Response.Write ("Good noon! Cindy!")
Case 13,14,15,16,17
Response.Write ("Good afternoon! Cindy!")
Case Else
Response.Write ("Good evening! Cindy!")
End Select
%
很明显,用这种方法来显示问候信息要比用If/Then/Else语句清楚得多。因此,在选择VB.NET条件语句的时候要考虑好采用什么方式,并认真设置好条件。
相关问答
Q1: VB.NET入门--Imports 语句
导入在引用vb.net模块语句的项目和程序集中定义的命名空间或编程元素 此外 导入在同一个项目中定义的命名空间或元素
Imports [ aliasname = ] namespace or Imports [ aliasname = ] namespace element
各部分说明
aliasname
可选 导入别名 或名称 代码可按该名称而不是完全限定字符串来引用 namespace
namespace
必选 所导入命名空间的完全限制名称 可以为嵌套到任意级别的命名空间的字符串
element
可选 命名空间中所声明编程元素的名称 可以为任何容器元素
备注
每个源文件可以包含任意数量的 Imports 语句 这些语句必须位于任何选项声明(如 Option Strict 语句)之后 任何编程元素声明(如 Module 或 Class 语句)之前
只能在文件级别使用 Imports 这意味着导入的声明上下文必须是源文件 而不能是命名空间 类 结构 模块 接口 过程或块
当需要使用在一个或多个命名空间中声明的同名项目时 导入别名十分有用
请注意 Imports 语句不会将其vb.net模块语句他项目和程序集中的元素提供给您的项目使用 导入不会取代对引用的设置 它只是使那些已经可用于项目的名称不再需要加以限定
规则
别名 不应使用与 aliasname 相同的名称在模块级别声明成员 如果这样做 Visual Basic 编译器只对声明的成员使用 aliasname 而不再将其识别为导入别名
命名空间名称 可以提供单个命名空间名称 也可以提供嵌套命名空间的字符串 每个嵌套命名空间都通过句点 ( ) 与下一个更高级别的命名空间分隔 如下面的示例中所述
Imports System Collections Generic
元素类型 如果提供 element 它必须表示 容器元素 即可包含其他元素的编程元素 容器元素包括类 结构 模块 接口和枚举
行为
范围 Imports 语句所提供元素的范围取决于是否指定vb.net模块语句了 element 如果仅指定了 namespace 则该命名空间中所有具有唯一名称的成员以及该命名空间内容器元素的成员无需限定即可使用 如果既指定了 namespace 又指定了 element 则只有该元素的成员无需限定即可使用
限定 命名空间或容器元素外部的代码通常必须使用该命名空间或容器元素的名称来限定成员的名称 除非您的项目要访问具有相同名称的另一个成员 否则使用 Imports 语句后将不必进行此类限定 在这种情况下 您可以在每个 Imports 语句中指定一个 aliasname 然后 您只需导入别名即可限定具有相同名称的成员
示例
下面的示例将导入 Microsoft VisualBasic Strings 类并给其分配一个别名 str 该别名可用于访问 Left 方法
Place Imports statements at the top of your program Imports str = Microsoft VisualBasic Strings Visual BasicClass testClass Sub showHello() Display only the word Hello MsgBox(str Left( Hello World )) End Sub End Class lishixinzhi/Article/program/ASP/201311/21880
Q2: VB.NET中的模块
在C#中有 静态类 的概念 自然里边全部的方法都是静态的 这意味着你可以直接通过 类名 方法名 去调用(例如System的Math类就是典型) 在VB NET中 没有 静态类 的概念(当然你可以用 单例模式 把构造函数弄成Private的方式 其它方法都是静态的)如果某些方法需要被其它地方频繁使用 可以创建 模块 在VB NET中一旦创建了模块 其中任何方法 属性或者变量都可以被其它地方引用 因此适合全局情况下频繁交互的情况(比如初始化加载的参数 可能后续程序要使用)等
现在问题在于 如果你把一个类似以下的模块代码封装成DLL类库 无论在C#或者是VB NET中都无法引用到其方法
Module A
Public Sub Test()
End Sub
End Module
或许你感到很奇怪——不是在VB NET中这样定义一个Module就直接可以使用其内部方法了么?为什么封装成类库就不可以了呢?上网问了一些人 众说纷纭 后来我在他人协助下终于成功解决了这个问题——解决方法很简单——只要在Module前加Public
理由是 为了兼容C# VB NET由Module封装成类库中这个模块不再是 模块 而是一个标准的类了 如果这样写 那么在 NET中被理解成(C#)
internal A
{
public void Test()
{
}
}
整个模块变成Internal的了!当然你到其它程序集中去引用就引用不到!而把类库中的Module的修饰符改为Public就可以了 这就是MSDN那位友人给我最好的提示
虽然这个提示不是令我太满意(因为要知道VB NET中可以直接不通过 类名 方式直接使用方法名) 但是这给了我很大的暗示 得出重要的结论
)VB NET中Module在制作成类库时候等同于VB NET中的类的规则(里边的方法都是静态的) 默认情况下是Friend(C#是internal)
)根据结论 那么我们知道引用该DLL类库的方法一定是 i)引用命名空间 ii)C#中直接 类名 方法名 对于VB NET 直接可以引用到方法名
lishixinzhi/Article/program/net/201311/12502
Q3: VB.NET怎么调用其它模块的过程?
调用过程,调用过程有诸多技巧,它们与过程的类型、位置以及在应用程序中的使用方式有关。下面说明如何调用 Sub 过程和 Function 过程。
调用 Sub 过程
与 Sub 过程不同,在表达式中,Sub 过程不能用其名字调用。调用 Sub 过程的是一个独立的语句。Sub 过程还有一点与函数不一样,它不会用名字返回一个值。但是,与 Function过程一样,Sub 过程也可以修改传递给它们的任何变量的值。
调用 Sub 过程有两种方法:
'以下两个语句都调用了名为 MyProc 的 Sub 过程。
Call MyProc (FirstArgument, SecondArgument)
MyProc FirstArgument, SecondArgument
注意,当使用 Call 语法时,参数必须在括号内。若省略 Call 关键字,则也必须省略参数两边的括号
调用函数过程
通常,调用自行编写的函数过程的方法和调用 Visual Basic 内部函数过程(例如 Abs)的方法一样;即在表达式中写上它的名字。
'下面的语句都调用函数 ToDec。
Print 10 * ToDec
X = ToDec
If ToDec = 10 Then Debug.Print "Out of Range"
X = AnotherFunction ( 10 * ToDec)
就像调用 Sub 过程那样,也能调用函数。下面的语句都调用同一个函数:
Call Year (Now)
Year Now
当用这种方法调用函数时,Visual Basic 放弃返回值。
调用其它模块中的过程
在工程中的任何地方都能调用其它模块中的公用过程。可能需要指定这样的模块,它包含正在调用的过程。调用其它模块中的过程的各种技巧,取决于该过程是在窗体模块中、类模块中还是标准模块中。
窗体中的过程
所有窗体模块的外部调用必须指向包含此过程的窗体模块。如果在窗体模块 Form1 包含 SomeSub 过程,则可使用下面的语句调用 Form1 中的过程:
Call Form1.SomeSub(arguments)
类模块中的过程
与窗体中调用过程类似,在类模块中调用过程要调用与过程一致并且指向类实例的变量。例如,DemoClass 是类 Class1 的实例:
Dim DemoClass as New Class1
DemoClass.SomeSub
但是不同于窗体的是,在引用一个类的实例时,不能用类名作限定符。必须首先声明类的实例为对象变量(在这个例子中是 DemoClass )并用变量名引用它。
标准模块中的过程
如果过程名是唯一的,则不必在调用时加模块名。无论是在模块内,还是在模块外调用,结果总会引用这个唯一过程。如果过程仅出现在一个地方,这个过程就是唯一的。
如果两个以上的模块都包含同名的过程,那就有必要用模块名来限定了。在同一模块内调用一个公共过程就会运行该模块内的过程。例如,对于 Module1 和 Module2 中名为 CommonName 的过程,从 Module2 中调用 CommonName 则运行 Module2 中的 CommonName 过程,而不是 Module1 中的 CommonName 过程。
从其它模块调用公共过程名时必须指定那个模块。例如,若在 Module1 中调用 Module2 中的 CommonName 过程,要用下面的语句:
Module2.CommonName (arguments)
Public 用于声明对所有模块中的所有其它过程都可以使用的过程。
Private 用于声明只能在包含该声明的模块中使用的过程。
Q4: VB.NET通过调用模块怎么建立access数据库?
oledb的使用网上的确很多.\x0d\x0a如果只是查询. 写入. 删除,vb.net模块语句我们常用的就是\x0d\x0aOleDbConnection '用于写数据库的连接\x0d\x0aOleDbCommand '用于数据的操作 接收SQL语句 并执行\x0d\x0aOleDbDataReader '查询了,vb.net模块语句我们就用这个类来读取查询的对象\x0d\x0a1).OleDbConnection \x0d\x0a dim conn as new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0;Data Source =数据库的路径")'连接字符串一般就这样 \x0d\x0a 查询前在打开 \x0d\x0a conn.open\x0d\x0a 2).OleDbCommand \x0d\x0a dim cmd as new OleDbCommand ("SQL语句",conn)'SQL语句决定了你是查询写入还是更新删除\x0d\x0a '''\x0d\x0a如果是查询,你还要用到OleDbDataReader \x0d\x0a 这个是不用新建的不能用New \x0d\x0adim rd as OleDbDataReader=cmd.ExecuteReader'cmd.ExecuteReader 方法就是读取查询的内容\x0d\x0acmd.ExecuteNonQuery用于执行操作 返回变动的条数 ,一般用于 添加 删除 更新 等其它操作\x0d\x0a \x0d\x0a其实就这些了,就是要学点SQL语句就行了.\x0d\x0a标准执行过程就是\x0d\x0a Dim conn As New OleDbConnection("连接字符串")\x0d\x0a conn.Open()\x0d\x0a Dim cmd As New OleDbCommand("SQL语句", conn)\x0d\x0a '如果是写入 更新 删除 则\x0d\x0a cmd.ExecuteNonQuery()\x0d\x0a 否则\x0d\x0a Dim rd As OleDbDataReader = cmd.ExecuteReader\x0d\x0a \x0d\x0a If rd.Read Then\x0d\x0a Dim d As Object = rd.Item("字段名")\x0d\x0a End If\x0d\x0a 结束如果\x0d\x0a rd.Close()\x0d\x0a cmd.Dispose()\x0d\x0a conn.Close()\x0d\x0a \x0d\x0a上面要有 Imports System.Data.OleDb
关于vb.net模块语句和vbnet single的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







