c# 中using 关键字都有哪些用法

c# 中using 关键字都有哪些用法,第1张

using 指令有两个用途:

允许在命名空间中使用类型,这样,您就不必在该命名空间中限定某个类型的使用:

复制代码

using SystemText;

为命名空间或类型创建别名。这称为“using 别名指令”。

复制代码

using Project = PCMyCompanyProject;

using 关键字还用来创建 using 语句,此类语句有助于确保正确处理 IDisposable 对象(如文件和字体)。有关更多信息,请参见 using 语句。

备注

using 指令的范围限制为包含它的文件。

创建 using 别名,以便更易于将标识符限定到命名空间或类型。using 别名指令的右侧必须始终是一个完全限定类型,而与前面的 using 指令无关。

创建 using 指令,以便在命名空间中使用类型而不必指定命名空间。using 指令不为您提供对嵌套在指定命名空间中的任何命名空间的访问。

命名空间分为两类:用户定义的命名空间和系统定义的命名空间。用户定义的命名空间是在代码中定义的命名空间。若要查看系统定义的命名空间的列表,请参见 NET Framework 类库参考。

有关引用其他程序集中的方法的示例,请参见创建和使用 C# DLL。

示例 1

说明

下面的示例显示了如何为命名空间定义和使用 using 别名:

代码

C# 复制代码

namespace PC

{

// Define an alias for the nested namespace

using Project = PCMyCompanyProject;

class A

{

void M()

{

// Use the alias

ProjectMyClass mc = new ProjectMyClass();

}

}

namespace MyCompany

{

namespace Project

{

public class MyClass { }

}

}

}

注释

using 别名指令的右侧不能有开放式泛型类型。例如,不能为 List<T> 创建 using 别名,但可以为 List<int> 创建。

示例 2

说明

下面的示例显示了如何为类定义 using 指令和 using 别名:

代码

C# 复制代码

using System;

// Using alias for a class

using AliasToMyClass = NameSpace1MyClass;

namespace NameSpace1

{

public class MyClass

{

public override string ToString()

{

return "You are in NameSpace1MyClass";

}

}

}

namespace NameSpace2

{

class MyClass

{

}

}

namespace NameSpace3

{

// Using directive:

using NameSpace1;

// Using directive:

using NameSpace2;

class MainClass

{

static void Main()

{

AliasToMyClass somevar = new AliasToMyClass();

ConsoleWriteLine(somevar);

}

}

}

// Output: You are in NameSpace1MyClass

SQL中是没有USING的,我想你指的是PL/SQL吧。

他是给bind变量传入值用的,比如:

for

i2

in

11000

loop

execute

immediate

'select

from

tablex

where

id=:1'

using

i2;

end

loop;

这个语句被执行1000次,每次查询条件不一样,但是该语句只被parse一次

你是说的是using的用法么??

mysql中using的用法为:

using()用于两张表的join查询,要求using()指定的列在两个表中均存在,并使用之用于join的条件。

示例:

select a, b from a left join b using(colA);

等同于:

select a, b from a left join b on acolA = bcolA;

V_SQLSTR

:=

'INSERT

INTO

'

||

V_TABLENAME

||

'('

||

'

SELECT

DISTINCT

KBP,KPI_NO,DCTIME,:1

WRITETIME,TO_NUMBER(VALUE)

'

||

'

FROM

BIZMAN_PM_TEMP

)';

这是一个动态的SQL,即通过EXECUTE

IMMEDIATE来执行一个字符串的SQL,而这里面通过冒号开头的是参数,EXECUTE

IMMEDIATE后边USING的顺序就是里面参数的顺序。您这里面对应的就是:1,即把V_CURRENTTIME的值代入到冒号1的位置,执行这个插入语句。

USING

OUT:如果动态SQL中有一个过程,而该过程的有个OUT

参数,此时就可以用USING

OUT

的方式

c#中,using 关键字有两个主要用途:

作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。

1、引入命名空间,如using SystemIO;

2、为命名空间或类型创建别名。这称为“using 别名指令”。

如using Project = PCMyCompanyProject;

作为语句,用于定义一个范围,在此范围的末尾将释放对象。

如你的代码using (FileStream output = FileCreate("binarydatadat"))

{

} 用完之后output会自动释放,等效于outputclose();

在数据库中, 常用的一个流水编号通常会使用 identity 栏位来进行设置, 这种编号的好处是一定不会重覆, 而且一定是唯一的, 这对table中的唯一值特性很重要, 通常用来做客户编号, 订单编号等功能, 以下介绍关于此种栏位常用方式及相关技术

CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40))

取得identity值:

因为 identity 特性, 所以在 insert into 该 table 时, 不能指定该 identity 栏位值, 仅能指定其他栏位值, 而 identity 由资料库维护, 所以一般要在 insert 后取得该 identity 栏位值, 则通常使用下面方式:

利用全局变量 @@identity 来取得最后影响的 insert 后产生的 identity 值, 如此一来便能方便地使用 identity 栏位

若要启用识别插入(identity insert)时, 也就是如空缺号要指定 identity 栏位值时, 或者是处理资料表整理或备出时, 会用到的方式:

set identity_insert products on

insert into products (id, product)values(12, 'screwdriver')

要注意的地方是可以 insert 空缺号, 也可以加至最后, 但系统会自动更新 identity 至最大值, 要注意一旦启用 identity_insert 时, 就一定要给定 identity 值, 另外并不能 update 该 identity 栏位值, 也就是说 identity_insert 该 identity 栏位仅 for insert, 不能 update

查询目前 identity 值:

有时我们需要查询目前 table 中该 identity 栏位最大值是多少时, 可以利用 dbcc 指令, 如下:

dbcc checkident('product', NORESEED)

可以获得目前最大值的结果

重设目前最大 identity 值:

一样利用 dbcc 指令, 如下:

dbcc checkident('product',RESEED,100)

如此一来, 便能将目前的最大 identity 值指向100, 当然若故意设比目前最大值小时, 系统仍会接受, 但若 identity 遇上重覆资料时(如将 identity 设为 primary key时), 将会发生重大问题, 该 table 变成无法 insert 资料, 因为会发生 primary key violation, 解决方法当然就是将目前的 identity 修复, 直接使用

dbcc checkident('products', RESEED)

dbcc checkident('products')

以上就是关于c# 中using 关键字都有哪些用法全部的内容,包括:c# 中using 关键字都有哪些用法、SQL语句的using到底什么用法、Database需要什么using指令,急用,谢谢了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9816439.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存