精华内容
下载资源
问答
  • 内联命名空间将子命名空间的名字导入到父命名空间,这样就可以在其它子命名空间使用父命名空间直接调用。一方面是简化使用过程,另一方面可以实现功能函数版本迭代。 内联命名空间使用inline关键词前缀。 2....

    1.命名空间介绍

    • 命名空间是为了实际工程而生的东西,工程大了,项目之间的命名冲突会经常碰到,命名空间就是为了解决这一问题。
    • 内联命名空间将子命名空间的名字导入到父命名空间,这样就可以在其它子命名空间使用父命名空间直接调用。一方面是简化使用过程,另一方面可以实现功能函数版本迭代。
    • 内联命名空间使用inline关键词前缀。

    2.例子

    • clion下使用c++11环境运行成功。
    #include <iostream>
    inline namespace test_1{
        namespace test_2{
            int num = 1;
        }
        inline namespace test_3{
            enum a{
                one = 1,
                two ,
            };
            enum num{
                three = 3 ,
                four,
            };
            void print(std::string& s)
            {
                std::cout<<s<<std::endl;
            }
        }
        inline namespace test_4{
            int num = 2;
        }
    
        namespace test_5{
            int t = a::one;
            void print(){
                std::string s("ttttt");
                test_1::print(s);
                test_1::test_3::print(s);
            }
    
        }
    }
    int main() {
        std::cout << test_1::test_2::num<<std::endl<<test_1::test_3::a::one << std::endl;
        std::cout<< test_1::test_3::num::three<<std::endl;
        std::cout<< test_1::test_4::num<<std::endl;
        std::cout<< test_1::test_5::t<<std::endl;
        std::string s("sssss");
        test_1::print(s);
        test_1::test_3::print(s);
        test_5::print();
        return 0;
    }
    
    • 从例子里可以看出来一下几点:
      • 内联命名空间兼具普通命名空间的使用特点。
      • 内联命名空间可以将自身名字导入父命名空间,其它子命名空间可以通过父命名空间进行调用。
      • 名字访问是命名空间加标识符
      • 不同命名空间内名字可以相同,不管他们是否是同类型。

    3.说说怎么功能函数版本迭代

    • 先上个待说明例子。
    #include <iostream>
    inline namespace child_fun{
        namespace child_fun_implement_v1{
            void child_fun_v1(){
                std::cout<<"child_fun_v1"<<std::endl;
            }
        }
    
    }
    int main() {
        child_fun::child_fun_implement_v1::child_fun_v1();
        return 0;
    }
    
    • 我们导出一个child_fun_v1功能函数,这样写是可以的。
    • 那么要是我们想将这个函数分成默认版本与加强版本怎么办?看下面:
    #include <iostream>
    inline namespace child_fun{
        inline namespace child_fun_implement_v1{
            void child_fun_v1(){
                std::cout<<"child_fun_v1"<<std::endl;
            }
        }
        namespace child_fun_implement_v2{
            void child_fun_v1(){
                std::cout<<"child_fun_v2"<<std::endl;
            }
        }
    
    
    }
    int main() {
        child_fun::child_fun_v1();//默认版本
        child_fun::child_fun_implement_v2::child_fun_v1();//加强版本
        return 0;
    }
    
    • 要是加强版本的程序,只需要把源程序调用child_fun::child_fun_implement_v1::child_fun_v1()的地方全部替换成child_fun::child_fun_implement_v2::child_fun_v1()即可。

    4.总结

    • inline 命名空间兼具普通命名空间特点。
    • inline 命名空间可以将自己的名字导入到父空间。
    • inline 命名空间可以可以实现功能的版本迭代。
    展开全文
  • 以一个下划线作前导的说明是弱的内部使用,以一个下划线结尾的是为了避免和Python关键词冲突,双下划线前导 类私有名。前后双下划线,特殊的对象属性,属于用户控制的名字空间。   二.一些语法注意点 import的...

     

    一.命名注意点

    以一个下划线作前导的说明是弱的内部使用,以一个下划线结尾的是为了避免和Python关键词冲突,双下划线前导 类私有名。前后双下划线,特殊的对象属性,属于用户控制的名字空间。

     

    二.一些语法注意点

    import的搜寻路径

    Python解释器现在当前的路径下搜索需要导入的模块文件,如果找不到就到$PYTHONPATH设定的路径中寻找。

     

    内建数据类型

    None表示该对象是一个空对象,比如一个没有明确定义返回值的函数,则返回None

     

    Boolean

    在Python中 None,0,空字符串””,空元组(),空列表[],空字典{},都会返回False

    自定义的对象如果实现了__nonzero__()或者__len__()方法且返回0或者False,则其实例也被当作False

    在Python中整数分为普通整数和长整数,普通整数长度为机器位长,长整数对长度没有限制

    Python中的字符串可以用单引号,双引号或者是三引号,其中三引号的字符串中可以换行。

    还有几个比较重要的常用的数据结构类型的对象

    列表List

    元组Tuple 和List不同的是一旦确定就不能改变

    集合Set 无序的


    展开全文
  • 指令:导入命名空间,可指定该命名空间别名 +static指令:导入单个类中的成员 语句:为指定的变量/资源指定一个范围,在末尾自动调用Dispose来释放资源 DbContext 定义 一个实例代表与数据库的一个Session,可做...

    BUG1:using + DbContext 释放资源问题

    2020-12-1


    using 关键词用法:

    • 指令:导入命名空间,可指定该命名空间别名
    • +static指令: 导入单个类中的成员
    • 语句:为指定的变量/资源指定一个范围,在末尾自动调用Dispose来释放资源

    DbContext 定义

    • 一个实例代表与数据库的一个Session,可做增删改查等操作
    • 是单元化和仓储模式的结合

    问题:

    在一个HTTP请求内,要多次查询数据库中不同的数据,但第二次查询时,触发异常。异常提示:The ConnectionString property has not been initialized.

    提示后发现,在第二次开始调用后,发现Connection中的配置数据丢失。

    DbConnection如下调用:

    using(var conn = ApplicationDbContext.Database.GetDbConnection())
    {
        //todo:Do someting
    }

    原因:

    在Web应用中,配置了Scoped类型的DbContext,生命周期为一个请求(请求开始-请求结束)。

    由于使用了using语句,第一次调用结束后,系统自动调用Dispose方法对ApplicationDbContext的Connection进行了资源释放。

    所以第二次调用时就会出错。因为这两次调用是在同一个请求内,用的是同一个DbContext的Connection。

     

    展开全文
  • C#-基本语法(三)

    2019-10-03 06:20:16
    关键词 关键字,是一些被C#规定了用途的重要单词 在Visual Studio的开发环境中,关键字被标识为蓝色 例如: using:导入命名空间 class:声明类 static:静态 void:无返回值 string:字符串类型 ...


    关键词
      关键字,是一些被C#规定了用途的重要单词
      在Visual Studio的开发环境中,关键字被标识为蓝色
      例如:
        using:导入命名空间
        class:声明类
        static:静态
        void:无返回值
        string:字符串类型

     

    注释
      注释,是代码中的一些“说明性文字”,本身不参与程序的编译和运行,仅仅供程序员阅读
      注释有三种类型:
        单行注释:// 注释需要说明的文言
        多行注释:以 /* 开始,以 */ 结束,习惯在多行注释的每一行前都加一个星号*,比较美观
            /* 注释需要说明的文言
             * 注释需要说明的文言
             * 注释需要说明的文言
             */
        文档注释:/// 写在类、方法或属性的前面

     

    常量
      指值不会改变的量
      例如:数字(1)、字符('A')、字符串("HelloWorld")

     

    变量
      变量用于存储数据,并且存储的数据可以修改
      语法:数据类型 变量名=值
      例如:age=10

     

    数据类型
      有三种类型:值类型(Value types)、引用类型(Reference types)、指针类型(Pointer types)
      值类型
        值类型变量可以直接分配给一个值,常用类型如下:
        char:字符类型,存储时用单引号括起来的一个字符,例:char sex='man’
        int:整型,例:age=10
        double:双精度浮点型,例:double PI=3.1415
      引用类型
        引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用
        例:object obj;
        obj = 100;
      动态类型
        存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的
        例:dynamic d = 20;
      字符串类型
        存储时用双引号括起来的一串字符,
        例:string address="BeijingXiSanHuan543Hao"
      指针类型
        指针类型变量存储另一种类型的内存地址
        int* iptr;

     

    数据类型转换
      自动类型转换:2种不同类型的数据运算,低精度类型会自动转换为较高精度的类型
        例:2+5.5,运算结果后是7.5。2是int型(精度较double低),5.5是double型
      强制类型转换:例:int i=(int)2.8,得到的是i=2,double强制转换成int型后小数部分会失去
        或者在类型名前加To,例:double i=2.2,i.ToString(),结果i=‘2.2’

     

    标识符的命名规则
      程序中的变量名、常量名、类名、方法名,都叫做标识符
      C#的命名规则:
        标识符只能由英文字母、数字和下划线组成
        标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ' / \
        标识符必须以字母、下划线或 @ 开头,后加字母、数字、下划线、@
        标识符不能用数字开头
        标识符必须区分大小写
        不能使用关键字做变量名

     

    转载于:https://www.cnblogs.com/tynam/p/9595468.html

    展开全文
  • 2020-11-25Form窗口创建

    2020-11-25 15:31:26
    导入相关的命名空间 获得连接字符串 创建桥conn连接对象 创建一个执法者(干什么,走哪里) 执法者.方法() ​ 窗体的开始 弹出一个小窗体 解决方案资源管理器 入口文件代码 Form1.cs相关文件 partial...
  • SmallGo是一个开源的淘宝客系统,支持pc和手机浏览,支持微信,基于全球最流行PHP框架laravel开发,后台采用laravel-admin开发,提供更方便,更安全的WEB应用开发体验,采用了全新的架构设计和命名空间机制,以帮助...
  • 目录和文件命名 21 框架结构 21 图像优化 22 FLASH 优化 23 表格使用 23 网页减肥 23 Robots.txt 25 网页相似度 29 第六部分 搜索引擎优化的重点:链接策略 29 导入链接 29 导出链接 31 内部链接 31 第...
  • _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 _xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户名字...
  • _x:单前置下划线,私有化属性或方法,from module import * 禁止导入,但是类对象和子类可以访问。 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) __xx__:双前后...
  • Python变量的下划线

    2019-11-14 22:19:54
    _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户...
  • _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户...
  • 96 python高级 - 私有化

    2019-08-19 10:58:22
    _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户...
  • Python 私有化

    2019-08-28 22:31:53
    _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 _xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户名字...
  • 私有化(xx,_x,__xx,__xx__,xx_)

    千次阅读 2019-01-03 20:29:09
    _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户...
  • 私有化

    2020-05-23 17:21:34
    _X:单前置下划线,私有化属性或方法,from somemodule import * 禁止导入,类对象和子类可以访问 __X:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) __XX__:双前后...
  • _xx:私有化的属性或方法,from xxx import * 时无法导入,子类的对象和子类可以访问。 __xx:避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)。 __ xx __ :双前后下划线,用户名字空间的...
  • _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户...
  • Python-私有化

    2018-03-31 18:20:35
    _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户...
  • Python私有属性

    千次阅读 2018-11-09 14:28:17
    _x:单前置下划线,私有化属性或方法,from somemodule import * 禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) __xx__:双前后下划线,用户...
  • Python高级

    2019-01-08 20:15:01
    2,_x:单前置下划线,私有化属性或方法,fromsomemodule import *禁止导入,类对象和子类可以访问 3,_xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) 4,xx:双前后...
  • Python私有化

    2020-12-31 19:53:51
    _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) __xx__:双前后下划线,...
  • _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 _xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户名字...
  • _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户...
  • _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) __xx__:双前后下划线,...
  • _x : 开头单下划线, 代表私有化的属性和方法,不能通过from xx import *导入, 都是子类和对象可以访问 __x : 开头双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(因为外部在使用这个的时候,会吧名字...
  • 9.1 数据库的连接、打开与关闭、导入命名空间 41 9.2 提示框的方法 41 9.3 在日历中的获取时间 41 9.3.1填充用于选择年和月的Dropdownlist控件(只在页面初始化时加载一次) 41 9.3.2给日历控件的年月赋值(在控件...
  • Tcl-tk组合教程

    热门讨论 2011-03-25 09:35:17
    14.5 过程导入 14.6 其他名称空间 14.7 回叫和名称空间 14.8 自检 14.9 namespace命令 14.10 包装现有的程序包 14.11 [incr Tcl]对象系统 14.12 注释 第15章 事件驱动编程 15.1 Tcl事件循环 ...
  • TCK/TK组合教程

    2010-12-29 16:42:23
    14.5 过程导入 14.6 其他名称空间 14.7 回叫和名称空间 14.8 自检 14.9 namespace命令 14.10 包装现有的程序包 14.11 [incr tcl]对象系统 14.12 注释 第15章 事件驱动编程 15.1 tcl事件循环 ...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

导入命名空间关键词