变量

使用NHibernate 3.2实现Repository(ORuM)(九)LINQ

瘦欲@ 提交于 2020-04-03 14:54:28
Linq LINQ(Language Integrated Query,语言集成查询),发音 "link",是一组技术的名称。LINQ是 Visual Studio 2008 和 .NET Framework 3.5 版中引入的一项创新功能,它在对象领域和数据领域之间架起了一座桥梁。LINQ 将强大的查询功能扩展到 C# 和 Visual Basic 的语言语法中,并采用标准的、易于学习的查询模式。可以对此技术进行扩展以支持几乎任何类型的数据存储。 传统上,针对数据的查询都是以简单的字符串表示,而没有编译时类型检查或 IntelliSense 支持。 此外,您还必须针对以下各种数据源学习一种不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等等。 LINQ 使查询成为 C# 和 Visual Basic 中的一流语言构造。 您可以使用语言关键字和熟悉的运算符针对强类型化对象集合编写查询。 下图显示了一个用 C# 语言编写的、不完整的 LINQ 查询,该查询针对 SQL Server 数据库,并具有完全类型检查和 IntelliSense 支持。 在 Visual Studio 中,可以用 Visual Basic 或 C# 为以下数据源编写 LINQ 查询:SQL Server 数据库、XML 文档、ADO.NET 数据集,以及支持 IEnumerable 或泛型

C#--深入理解类型

女生的网名这么多〃 提交于 2020-04-03 14:33:19
List分组迭代器 说明: 针对长度较大的List对象,可以分组批量进行处理, 如:长度为1000的List对象,可分为10组,每组100条,对数据进行业务逻辑处理... Source /****************************************************************************** * 名称:List分组迭代器 * 说明:针对长度较大的List对象,可以分组批量进行处理 * 如:长度为1000的List<int>对象,可分为10组,每组100条,对数据进行业务逻辑处理 * 作者:Sybs * 时间:2018-10-15 * **************************************************************************/ namespace System.Collections.Generic { /// <summary> /// List分组迭代器 /// </summary> public class ListGroupIterator<T> { private int _groupsize = 1; /// <summary> /// 分组大小(缺省值为1) /// </summary> public int GroupSize { get =>

面试题: c#值类型和引用类型

ぐ巨炮叔叔 提交于 2020-04-03 13:28:15
c#值类型和引用类型 在C#中, 值类型 :整型、布尔型、字符型、实数型、结构型、枚举型。 引用类型 :类、对象、字符串、数组、接口、委托。 区别: 1、值类型通常被分配在栈上,它的变量直接包含变量的实例,使用效率比较高。 2、引用类型分配在托管堆上,引用类型的变量通常包含一个指向实例的指针,变量通过该指针来引用实例。 3、值类型继承自ValueType(注意:而System.ValueType又继承自System.Object);而引用类型继承自System.Object。 4、值类型变量包含其实例数据,每个变量保存了其本身的数据拷贝(副本),因此在默认情况下,值类型的参数传递不会影响参数本身;而引用类型变量保存了其数据的引用地址,因此以引用方式进行参数传递时会影响到参数本身,因为两个变量会引用了内存中的同一块地址。 5、值类型有两种表示:装箱与拆箱;引用类型只有装箱一种形式。我会在下节以专门的篇幅来深入讨论这个话题。 6、典型的值类型为:struct,enum以及大量的内置值类型;而能称为类的都可以说是引用类型。 7、值类型的内存不由GC(垃圾回收,Gabage Collection)控制,作用域结束时,值类型会自行释放,减少了托管堆的压力,因此具有性能上的优势。例如,通常struct比class更高效;而引用类型的内存回收,由GC来完成,微软甚至建议用户最好不要自行释放内存。

值传递和引用传递的讲解

廉价感情. 提交于 2020-04-03 13:23:50
值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。 引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行 中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。 1·实例:值传递:传递的是值的拷贝,也就是说传递后就互不相关了。 public class TempTest { private void test1(int a){ a = 5; System.out.println("test1方法中的a="+a); } public static void main(String[] args) { TempTest t = new TempTest(); int a = 3; t.test1(a);//传递后,test1方法对变量值的改变不影响这里的a System.out.println(”main方法中的a=”+a); } } 执行结果是 test1方法中的a=5 main方法中的a=3 2:引用传递:传递的参数是按引用进行传递,其实传递的引用的地址

C#中out和ref使用

狂风中的少年 提交于 2020-04-03 11:52:27
1、out必须在方法中为其赋值,在调用的时候必须在变量的前面加上out关键字,侧重输出。 2、ref修饰方法的参数,在调用的时候必须在变量的前面加上ref关键字,可以修改其值也可以不修改,侧重修改。 3、out和ref只能传递变量不能传常量,传递的时候不是传递变量的值,而是传变量的地址。 3、out在传递之前可以不赋初始值,因为在方法里面肯定会为out赋值,ref在传递之前必须要有值,因为在方法中有可能会用到参数的值。 static void TestOut(out int i) { i=110;//out中一定要对变量赋值 } static void TestRef(ref int i) { i+=1;//ref中可以对变量赋值也可以不赋值 } staitc void Main(string[] args) { int i=12; TestOut(out i); //TestOut(out 12);这样就报错,只能传变量不能传常量 Console.WriteLine(i); int[] arr={1,2,4,6,3}; int min=0; int max=0; GetMaxAndMin(arr,out max,out min); Console.WriteLine(min+":"+max); int num; //TestRef(ref num);//这样就有可能报错

ThreadLocal系列(三)-TransmittableThreadLocal的使用及原理解析

流过昼夜 提交于 2020-04-03 10:33:17
上一篇: ThreadLocal系列(二)-InheritableThreadLocal的使用及原理解析 一、基本使用 首先,TTL是用来解决ITL解决不了的问题而诞生的,所以TTL一定是支持父线程的本地变量传递给子线程这种基本操作的,ITL也可以做到,但是前面有讲过,ITL在线程池的模式下,就没办法再正确传递了,所以TTL做出的改进就是即便是在线程池模式下,也可以很好的将父线程本地变量传递下去,先来看个例子: // 需要注意的是,使用TTL的时候,要想传递的值不出问题,线程池必须得用TTL加一层代理(下面会讲这样做的目的) private static ExecutorService executorService = TtlExecutors.getTtlExecutorService(Executors.newFixedThreadPool(2)); private static ThreadLocal tl = new TransmittableThreadLocal<>(); //这里采用TTL的实现 public static void main(String[] args) { new Thread(() -> { String mainThreadName = "main_01"; tl.set(1); executorService.execute(() -> {

数据类型、常量、变量、printf、scanf和运算符

随声附和 提交于 2020-04-03 10:32:55
数据类型 常量 变量 printf函数介绍 scanf函数介绍 运算符 数据类型 数据类型是指数据在内存中存储的方式。 C语言中有5大数据类型:基本类型、构造类型、指针类型、空类型、定义类型。 C语言中常见的数据类型: 各种数据类型在内存中占用的空间大小:(单位:字节)(1 Byte = 8 bit) 16位编译器 32位编译器 64位编译器 char 1 1 1 Int 2 4 4 Float 4 4 4 Double 8 8 8 Short 2 2 2 Long 4 4 8 Long long 8 8 8 Void *(指针变量) 2 4 8 各种数据的表示范围: 常量 常量就是在内存中固定的数据,不可改变其内容。 常见分类: 整型常量 a) 十进制常量,和自然界十进制表示法一致 b) 二进制常量,以0b(0B)开头,例如:0b1100 c) 八进制常量,以0开头,例如:045 d) 十六进制常量,以0x开头,例如:0x123 实型常量 a) 单精度常量,小数后面加f表示单精度常量。 例如:3.14f b) 双精度常量,和自然界小数表示方法一致。 例如:3.1415926 3.8e5(或3.8E5 相当于3.8 x 10 5 ) 字符型常量 用单引号括起来的单个字符表示。 a) 普通字符:例如: ‘A’ ‘b’ ‘$’等等 b) 转义字符:例如:’\n’ ‘\t’ ‘%%’

《Ruby入门权威经典》(一)

孤街浪徒 提交于 2020-04-03 10:30:22
作者:于天恩 北京航天航空出版社出版发行。 Ruby是一种语言,其单词含义为“红宝石”。Rails是一种技术框架,其单词意思为“铁轨”。于是“Ruby on Rails”的含义就是铺满红宝石的铁轨。Rails是B/S结构的编程框架,基于Ruby语言。这类似于ASP基于VBScript和JSP(Struts)基于Java。 单独学习Ruby是可以的,你可以使用Ruby去编写各种程序。不过,通常人们不会这么做,对我而言,最好的万能语言是Java,用JBuilder开发Java程序是非常舒服的。如果你也不打算使用Ruby作为万能语言的话,那么最好使用它来做Web开发,也就是使用Ruby on Rails框架,这是Ruby最好的应用。 生而知之者,上也;学而知之者,次也;困而知之者,又其次也。 “人事有可陷者,亦有不可陷者”,陷于技术,不值得。 悟性,因人而异,不可强求,欲望,因人而异,不应执着。 诚然人的天资很重要,非常重要,相当重要。但有几句话要提醒读者:“勤能补拙是良训,一分辛劳一分才”。天资是天给的,不是人定的。但在天资之外,你还有很多事情可以做,通过勤奋、坚持、刻苦,纵然超不过天才,你也定然能成为超越常人的天才。 Ruby语言的特点:(1)解释执行,不需要编译即可运行,调高了调试速度,不过执行效率低。(2)变量无类型,错误检查能力变弱,区分大小写。(3)变量不需要声明(4

Delphi面向对象编程思想读书笔记3——理解对象

你。 提交于 2020-04-03 10:21:08
对象的本质 计算机内存常用的有两块,栈(stack)和堆(heap)。 对象的引用存储在栈中,栈中的变量是不需要由程序员手动去释放内存空间的。简单数据类型的值和对象的引用存储在栈中,对象存储在堆中。 查看创建对象所占用内存的大小,调用InstanceSize()方法,从TObject继承。 对象引用和类引用。对象是类的动态实例,对象总是被动态分配到堆上,一个对象引用就如同一个句柄或者一个指针。一个对象引用通常以一个变量的形式存在,也有函数或者属性返回值的形式。类引用类型是类的模板。类引用最普遍的使用是通过调用构造函数来生成该类的实例,也可以用引用类测试对象类型(is)或者将对象转换为特定类型(as)。 常用的参数床底机制分为值传递和引用传递(var)。 赋值操作符(:=)将一个对象的以用赋值给一个对象变量。Assign和AssignTo方法可以将对象属性进行赋值。 简单的数据类型(如Integer,Char,Record等)无论作为参数还是变量都是按值传递和使用的,通常称为值类型。对象变量是引用类型变量,分配一个对象引用给一个变量时,Delphi仅复制引用,而不是整个对象。 对象的生死 Delphi用Constructor声明一个构造函数Create,可在对象产生的时候调用。用Destructor声明一个析构函数Destroy,将在对象销毁的时候调用。 Destroy直接销毁对象

经典的Java基础面试题集锦

只愿长相守 提交于 2020-04-03 05:26:51
问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”。 问题:Java里的传引用和传值的区别是什么? 答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。 问题:如果要重写一个对象的equals方法,还要考虑什么? 答案:hashCode。 问题:Java的”一次编写,处处运行”是如何实现的? 答案:Java程序会被编译成字节码组成的class文件,这些字节码可以运行在任何平台,因此Java是平台独立的。 问题:说明一下public static void main(String args[])这段声明里每个关键字的作用 答案:public: main方法是Java程序运行时调用的第一个方法,因此它必须对Java环境可见。所以可见性设置为pulic. static: Java平台调用这个方法时不会创建这个类的一个实例,因此这个方法必须声明为static。 void: main方法没有返回值。 String是命令行传进参数的类型,args是指命令行传进的字符串数组。 问题:==与equals的区别 答案:==比较两个对象在内存里是不是同一个对象,就是说在内存里的存储位置一致。两个String对象存储的值是一样的,但有可能在内存里存储在不同的地方 . ==比较的是引用而equals方法比较的是内容