知识小记(C#)

1)创建Dataset对象的副本,以至于对象出现变化时不会影响副本的数据。DataTable Tdb = NokiaDataset.Tables["Nokia_Relation_DnAndHawb"].Copy();

2)给GridView的某行加颜色,在RowDataBound事件中

3)根据XML文档去构建表结构

 

4)Context.Items["MyObject"]=主要用法 1、在两个表单之间传递数据
Context.Items["WebForm1List"]=list; Server.Transfer("WebForm2.aspx");
 对于WebForm2
ArrayListlist=Context.Items["WebForm1List"]asArrayList;

5)控件绑定弹出窗体页面

btmBatchItem.Attributes.Add("onclick", "javascript: return confirm('Are you sure to batch submit')");

6)App_Themes目录下放css样式

7)项目文件多的时候,为了能够使文件名称的唯一性,尽量在文件头加上namespace

 8)GridView中的CheckBox被选中时,数据行背景用高亮颜色显示,取消时,恢复原状。

 9)根据"SHAPT00004013",在后面每次加一生成一个单号,前面补0

 10)hastable转化为类emp1是hastable类,转化为gowuche类

 

11)今天有个同事出现很怪的问题,程序在本地运行没有问题,发布到服务器上就有问题,后来发现原来程序里面他定义的变量名称和控件名称重叠了。

12)System.Web.UI.WebControls.ContentPlaceHolder 类

Defines a region for content in an ASP.NET master page.

13)

View State的作用和实现方式
简答:View State是微软实现的缓存机制。
有点类似以前的表单中的隐藏控件。当 asp.net 执行某个页面时,该页面上的 viewstate 值和所有控件将被收集并格式化成一个编码字符串,然后被分配给隐藏窗体字段的值属性(即 <input type=hidden>)。由于隐藏窗体字段是发送到客户端的页面的一部分,所以 viewstate 值被临时存储在客户端的浏览器中。如果客户端选择将该页面回传给服务器,则 viewstate 字符串也将被回传。
ViewState 在 ASP.NET 中有个重要的角色。如果使用恰当,它能够简化页面开发,改进用户与站点的交互。如果置之不理,它能够显著增加站点响应大小,在连接速度慢的情况下,使您的响应时间更加缓慢。
ViewState 为 ASP.NET 开发人员解决了一个特定问题 — 保留服务器端不形成元素的控件的状态。
ViewState 完成基于控件的编程模型。如果没有 ViewState ,一些控件(如文本框和下拉列表)在 POST 请求期间保持状态,而其他控件不保持,使用这些状态各异的控件记录一些特殊的情况是令人沮丧的体验。使用 ViewState ,开发人员能够专注于编程模型和用户界面,而不用担心状态保持。还能对 ViewState 进行哈希或加密,以防止用户篡改或解码。
用 ASP.NET 2.0 可以改进ViewState 加快网站速度,
保存一些变量或其他对象,当页面刷新后可取出所保存的数据。
ViewState("XXXX")=对象/变量.....
XXXXXXX=ViewState("XXXX").ToString()
总结:页面的变量在需要保存是可以设置,还需要查一下public static string 类型的区别

14)字符串截取固定长度的方法

解决了汉字与英文字节不一样导致直接截取到的长
度不一样的问题,

15).net ref 的用法

使用 ref 是传的引用,如果在此方法里面更改参数的值,那此参数对应的变量的值也会被更改。

16)        string b = s;
            string c = String.Intern(s);

可以用Intern()函数来进行字符串的驻留(如果有这样的值存在)。

17)C#里的foreach

C#语言从VB中吸取了一个非常实用的foreach语句。对所有支持IEnumerable接口的类的实例,foreach语句使用统一的接口遍历其子 项,使得以前冗长的for循环中繁琐的薄记工作完全由编译器自动完成。支持IEnumerable接口的类通常用一个内嵌类实现IEnumerator接 口,并通过IEnumerable.GetEnumerator函数,允许类的使用者如foreach语句完成遍历工作。

18)通过查询条件从DataTable中查询出要的记录

DataRow[] VSelectProject;

DataTable APrivilege

VSelectProject = APrivilege.Select(string.Format("privilege_key = '{0}'", VPrivilegeKey));

19)lock 语句(C# 参考)

lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。此语句的形式如下:

 

lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。

20)禁止页面缓存

Response.Cache.SetCacheability(HttpCacheability.NoCache);

21)网格里面的数据太长,鼠标放在上面可以显示出所有的数据,下面的框显示出‘666666666666666666666666666’的数据

22)如何用VS2005制作Web安装程序

http://blog.csdn.net/cqfeng/archive/2006/02/17/601506.aspx 

 

23)淘宝网开放平台API

http://open.taobao.com/dev/index.php/%E6%B7%98%E5%AE%9DAPI%E6%A0%87%E5%87%86%E7%A4%BA%E4%BE%8B#C.23.E8.AE.BF.E9.97.AE.E4.B8.80.E4.B8.AAAPI.E6.9C.8D.E5.8A.A1

Protobuf是一种高效的序列化协议,可以用于数据交换和数据存储。它的主要优势是大小小,速度快,可扩展性强。下面是使用Protobuf的一些小记: 1. 定义消息格式 首先,需要定义消息格式,以便Protobuf可以将数据序列化和反序列化。消息格式定义在.proto文件中,使用protobuf语言编写。例如,下面是一个简单的消息格式定义: ``` syntax = "proto3"; message Person { string name = 1; int32 age = 2; } ``` 这个消息格式定义了一个名为Person的消息,包含两个字段:name和age。 2. 生成代码 一旦消息格式定义好,就可以使用Protobuf编译器生成代码。编译器将根据消息格式定义生成相应的代码,包括消息类、序列化和反序列化方法等。可以使用以下命令生成代码: ``` protoc --java_out=. message.proto ``` 这将生成一个名为message.pb.java的Java类,该类包含Person消息的定义以及相关方法。 3. 序列化和反序列化 一旦生成了代码,就可以使用Protobuf序列化和反序列化数据。例如,下面是一个示例代码,将一个Person对象序列化为字节数组,并将其反序列化为另一个Person对象: ``` Person person = Person.newBuilder() .setName("Alice") .setAge(25) .build(); byte[] bytes = person.toByteArray(); Person deserializedPerson = Person.parseFrom(bytes); ``` 这个示例代码创建了一个Person对象,将其序列化为字节数组,然后将其反序列化为另一个Person对象。在这个过程中,Protobuf使用生成的代码执行序列化和反序列化操作。 以上是使用Protobuf的一些基本步骤和注意事项,希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值