namespace后面跟什么,aspnet namespace

1,aspnet namespacenamespace是命名空间,一个网站是不允许有两个一样的命名空间的 。所以就加上后面的.什么什么的就不会发生命名冲突namespace可以理解为逻辑上的函数库(里面包含各类函数),与之对应的是assembly,属于物理上的函数库(即一个个dll文件) 。namespace是有层次的,这就好象书的章节一样,这样在使用namespace中的类和对象时,就比较容易了 。象下面这个例子:dim abc as system.io.streamreader,一看就知道这是把abc定义为system命名空间下的io子空间中的streamreader类 。由于各名字空间实际是保存在各程序集(assembly)中的 , 因此使用名字空间前需要先引用其所在的程序集 。根据需要也可写 import namespace,这样以后使用namesapce中的类和对象时可省略那一长串路径 。比如刚才的例子可以写成这样:import system.iodim abc as streamreader有了namespace后 , 同名的类和函数就被允许了,因为它们位于不同的namespace中,不会产生冲突!比如system.web.ui空间下有textbox类 , 而system.windows.forms空间下也有一个textbox类,这两个类的名字完全一致(其实功用也差不多),但你在使用它们的时候,系统能够很好的分辨到底是哪一个,这就是namespace的关系!当然,除了系统的namespace , 开发者可以自己定义自己的namespace 。其实当你编译一个解决方案时,系统也会用你的项目名称做名字,生成一个namespace , 并把你的类(其实每个web页面就是一个类)都放在这个namespace下面!【namespace后面跟什么,aspnet namespace】
2,c语言关键词using namespace意思C中没有这个,在C++中才出现的C++为了避免名字冲突,用名字空间(namespace)来解决:using namespace用来确定编译时缺省查找的名字空间 。例如,使用了STL的头文件,后面可以添加using namespace std; 。这样就可以直接写类型名字了 。如cout << endl;否则每次用到STL类型的时候都要添加std:: 。如std::cout << std::endl;如果编译器发现某个名字在多个缺省的名字空间都出现过,会显示编译错误 , 这时就必须使用::操作符强行指定名字空间了 。例如你自己定义了一个变量,名字也叫cout 。这时你就必须指定是std::cout还是::cout(直接使用::表示根名字空间) 。你说的都是c++的,c语言没有这些 。#include -- c++ 用 #include -- c 用 #include -- c++ 用 #include -- c 用这是C++才会有的语言特性.假如你使用一个程序库,他里面有桓霰淞拷衋bc,但是你自己也不小心定义了一个叫abc的变量,这样就会引起重定义错误.所以为了避免这种现象,C++引入了名字空间(namespace)的概念,编写程序库的时候最好把所有东西放在一个namespace中,例如namespace MYint abc;char cab;}这样,你在外界就要通过MY::abc来访问MY里面的abc,而如果你自己在外面定义了一个叫abc的变量,不会引起重定义的错误.直接调用abc会调用你自己定义的abc,而只有用MY:abc才会真正调用出MY里面的abc但是这样未免太麻烦,如果你确保你不会重复使用别人程序库里的名字,你就可以把他的名字空间里所有名字全部调出,这个过程就是using namespace,例如我输入using namespace MY;这样,下面我再调用abc时,就会自动调用MY里面的abc了.en en enha ohao好好using: 调用namespace: 名称空间具体解释请看下文:http://www0.ccidnet.com/tech/guide/2001/06/08/58_2311.html
3,c名空间类似c语言的#include , 导入库函数用的例如,你创建了个窗体应用程序,可以随意添加类似Lable lab=new Lable();这样的代码,因为应用程序默认给你添加了using System.Windows.Forms命名空间 , 如果没有添加这个命名空间,那么也没事,代码就这样写System.Windows.Forms.Lable lab=new System.Windows.FormsLable();如果你不嫌敲键盘累的话 。命名空间实际没多大用处,你可以理解为是为了方便管理而导入一个空间,例如你点名“王小一、王小二、王小三 。。。。”这样方便呢还是“姓王的,小一、小二、小三 。。”这样方便?“姓王的”这个就是命名空间!理论上讲,你直接改你这个类前面namespace就可以,但是这样会导致代码逻辑混乱最好的办法,自己新建一个工程,会生成以工程名为名字的命名控件其次,新建一个文件夹,在这个文件夹里添加的类所属命名空间是当前工程下的二级命名空间例如你在工程pro1下加了一个myfolder文件夹,那么在这个文件夹里添加的类默认的命名空间就是pro1.myfolder最不好的办法,就是最先说的这个方法...namespace是给当前类声明他所在的命名空间的比如这样你新建一个WINDOWS窗口程序然后新建一个类,类名 Class1然后在这个类上面看下他的namespace 后面的命名空间这个时候namespace 后面的命名空间应该是跟你的项目名字是一样的然后你再在这个程序里面默认生成的这个窗体里面实例一下这个类只需这样即可Class1 cls = new Class1()即可应为他的命名空间跟你的这个窗体的命名空间是一样的所以可以直接省去命名空间然后你再新建一个类, 类名Class2把namespace 后面的字改成Test.Demo然后再去刚才那个窗体下面写代码这时候要实例化这个Class2需要这样Test.Demo.Class2 cls2 = new Test.Demo.Class2()才可以了 , 因为他跟这个窗体不在同一命名空间下这也是为什么你要用到SqlServer数据库操作的时候要引用System.Data.Sqlclient这个命名空间了因为SqlServer数据库操作类是这样定义的using ....;using ....namespace System.Data.Sqlclientpublic classSqlConnection....}
4,求解释代码意思namespace和class后面能自己定义名称吗分别是1)命名空间就好像电脑硬盘的文件夹;类就好像文件夹中的文件 。例如,C:\Windows\System32\表示一个目录;类似地 , System.Collections.Generic表示一个空间只不过命名空间表示方法中使用了英文的句号作为分割符号 。2)using System.Collections.Generic 表示这个程序使用了位于System.Collections.Generic空间中的类 。其他using语句含义相同 。3)程序中 namespace ConsoleApplication17 表示你自己定义了空间,这个空间的名称为ConsoleApplication17。这样 class Program 就在ConsoleApplication17 空间里了 。4)一个类的完全名称格式为:命名空间.类名;如果使用开始 using  , 命名空间就可以省略 。比如Main函数中 , 经常用到Console.WriteLine这个方法,完整的写法是:System.Console.WirteLine(……)因为使用了 using System;所以,可以略区命名空间而直接写Console.WriteLine(……)static void Main(string[] args) 是主函数,是程序的入口 , 程序从这里开始执行 。主函数参数args是一个字符串数组,用来接收命令行上给出的参数,例如,在命令窗口中:ConsoleApplication17.exe参数1参数2则 args[0]="参数1" args[1] ="参数2"主函数可以写成 static void Main( ) ,去掉函数参数 。可以的,namespace是命名空间的意思 , 后面你可以自己改名字,后面的就是命名空间的名字;class后面也可以改,这个是类的名字;Main是方法名 , string【】 是参数类型,args是参数,这个可以改namespace 这个是你建的项目名称 如: ConsoleApplication17class 是你这个类的名称 这些都可以自定义的如对你有帮助 请采纳 谢谢?。tatic void Main(string[] args) {} 这个是C# 窗体程序运行的入口,当你F5调试时他首先机会就会进入这个函数,而且这个函数是系统定义的,不能改可以,namespace后面是命名空间,class后面是类名再看看别人怎么说的 。你好,首先,你要知道namespace 命名空间的含义 , namespace是为了解决程序集命名重复而设置的,你新建一个项目A,namespace就是A,和namespace B 是不一样的 。类,class就是一个命名空间的成员,同样是不可以重复的 , 他们是所属关系 。当然啦,他们都是自定义的 。5,extern 与 namespace 的用法1、在C中,给全局变量,函数,加上 static,表示当前函数和变量的linkage 为 internal,这样 , 就可以在不同的unit 中定义同名的函数和变量了 。但是,加了static 的函数和变量就不用作为模板费类型参数了 。(模板的非类型参数,必须是编译期确定的,exterl 性质的,整形常量或者指针常量)2、在C++中,同样解决这种在不同的编译unit中定义同名的函数和变量的,这样就有了匿名的namespace, C++会为每个匿名的namespace生成一个唯一的 名字: __UNITQUE_NAMESPACE_NAME,并会再定义时后,加上 using namespace __UNITQUE_NAMESPACE_NAME , 这样也就就解决了变量和函数名字冲突问题 。这里解决冲突的同时,并不会给函数和变量限定为 internal linkage 。之所以出现连接错误是因为:在namespace data 中只是对 x 进行了声明,而非定义.即就是说,namespace data 中的int x不是namespace data 中的东西.这里只不过只是对x的一个声明而已,为的是在data中可以引用全局变量xextern 表明int x只是一个声明,而非定义(告诉编译器这里的x在别的地方)因为组合较多,下面是一种改法://main.cpp#include#include"data.h" using std::cout; using std::endl; int main() { cout<< return 0; } //data.cpp int x =1; //data.h extern int x; 至于namespace 在这里是用不到的: 这是由于如果x是namespace data中的,那么用extern岂不是多此一举(extern int data::x)而且还是错误的用法! 希望能解决你的问题! extern的详细用法见 http://wenwen.sogou.com/z/q660859045.htm你好!修改data.cpp文件://文件 data.cppnamespace dataint x =1;}其余的都不变就可以了 。这样x就是namespace data中的数据了,而不是一个所谓的无法解析的外部符号 。而且不会因为data.h被包含在了其他的.cpp文件中而发重定义 。因为data.h中只是申明x而矣 。如有疑问,请追问 。/*extern在C和C++中是为了使用全局变量的 。说明变量具有外部链接属性!在C和C++语言中,使用全局变量有两种方法 。其一:你在一个.cpp文件中定义了一个全局变量 , 如果你在别的地方需要使用这个变量你可以用extern 声明一下,告诉编译器这个变量是在别的.cpp文件定义过的全局变量 。其二:也是建议用的 , 就是把在程序中要使用的全局变量放在头文件中 , 你只需要在使用的地方用#include把头文件包含进就可以了 。namespace命名空间是一个逻辑块 , 可以避免命名冲突 。具体到你这个地方 , 其实你在namespace data这个命名空间中,你并没有声明一个变量,你只是用externint x;告诉编译器这个int 型的变量x是在别的.cpp文件中定义过的 。你给的那个补充说明也是这么一个意思 。就是在data.cpp中你定义的int x =1; 。这时候你在namespace data 命名空间中操作的x是在data.cpp中定义的x 。这个变量x并不是命名空间data中的 , 所以就会产生你那个链接错误,找不到符号 。这时你不妨在namespace data 中写一个函数,改写x的值,试试 。你要是想要在namespace data定义x,就得把前面的extern去掉 。在你这个程序中,只需要在main()函数中加上一句extern int x;程序就可以正常运行,这说明你在main()函数中使用的是在data.cpp文件中定义的全局变量 。#include#include"data.h" using std::cout; using std::endl; int main() { extern int x; cout<< return 0; } 也可以这样修改,这时候使用的是在namespace data命名空间中定义的 x变量了 。//文件 data.h namespace data { int x=100; } 主函数文件: #include #include"data.h" using std::cout; using std::endl; using data::x; int main() { cout<< return 0; } */

    推荐阅读