1.值类型 值类型包括简单值类型和复合型类型。简单值类型可以再细分为整数类型、字符类型、实数类型和布尔类型;而复合类型则是简单类型的复合,包括结构(struct)类型和枚举(enum)类型。 整数类型 数据类型 说明 取值范围 对应于System程序集中的结构 sbyte 有符号8位整数 -128-127 SByte byte 无符号8位整数 0-255 Byte short 有符号16位整数 -32768-32767 Int16 ushort 无符号16位整数 0-65535 UInt16 Int 有符号32位整数 -2147489648-2147483647 Int32 uint 无符号32位整数 0-42994967295 UInt32 long 有符号64位整数 -263-263 Int64 ulong 无符号64位整数 0-264 UInt64 字符类型 C#中采用Unicode字符集来表示字符类型。 实数类型 数据类型 说明 取值范围 float 32位单精度实数 1.5*10-45-3.4*1038 double 64位双精度实数 5.0*10-324-1.7*10308 demcimal 128位十进制实数 1.0*10-28-7.9*1028 布尔(bool)类型 取值只能是ture或者false,bool类型对应于.NET类库中的System.Boolean结构。它在计算机中占4个字节,即32位存储空间。 结构类型 把一系列相关的信息组织成为一个单一实体的过程,这就是创建一个结构的过程。 struct person { string m_name; //姓名 int m_age; //年龄 string m_sex; //性别 } 枚举类型 主要用于表示一个逻辑相关联的项和组合。使用关键字enum来定义。 enum Weekday { Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday } […]
View Details刚开始学习asp.net,常常遇到一些奇怪的问题,最近做asp.net的毕业设计,把其中的系统做好后在本机上能够正常运行,但是上传到服务器中就出现了下列问题提示: System.Security.SecurityException: That assembly does not allow partially trusted callers., 从百度查了很多资料,回答的不是不沾边,就是凭自己感觉答复。从google搜了下,前几页几乎全是英文页面,看的头大,感觉有的解释有那个道理。最后综合想了下终于明白了, 1)服务器端:将客户端的访问权限设置为full trusted callers,可以正常使用服务器资源,但是咱们对服务器不能要求有什么改动,要求了提供商也是没反应 2)自身系统:我发现系统出现这个问题的地方都是因为用到了分页控件AspNetPager.dll,于是,想到有网友提议: AssemblyInfo.cs文件中加如下内容 using System.Security; [assembly: AllowPartiallyTrustedCallers()] 我想,是啊,突然间又想这个分页控件的新版本已经把这个问题解决了吧,这样我就不必自己修改AssemblyInfo.cs文件再重新编译生成AspNetPager.dll了。从网上又下了个AspNetPagerV7.02的,然后覆盖网站空间中原来那个,再打开自己的网页,发现问题解决了! —————————————————————————————————————————————————————————————— 以上信息转自:http://blog.csdn.net/gzq521/archive/2009/05/13/4178093.aspx 经本人验证 AssemblyInfo.cs文件 的方法行不通。还是下载了个最新的AspNetPager,问题解决,谢谢gzq521。
View Details今天在运行PHP应用时,报了上面的警告, 出现这个可能是以下原因1.如果装xampp,可能是xampp没装好或者有问题,需要重装2.php 5.3也可能出这个问题,需要修改php.ini文件 找到date.timezone将它的改为 date.timezone=utc 将前面的分号去掉,重启服务器或者在index.php中加上 date_default_timezone_set('UTC'); 3.可以将index.php里面的error_reporting(7);改为error_reporting(0);即可避免它们的出现。
View Details关于asp.net 循环输出多个随机数相同时的解决方法 我们在使用Random生成随机数时经常会出现一种误区,下面我们就此介绍一下: 其中用于产生随机数的函数原型为:Rnd(x),该函数用以产生一个介于0~1之间的单精度随机数。x是产生随机数的种子。如果要从(min, max)这个范围内随机抽取一个数,此时需要用到公式:随机数 = (max – min) * Rnd(x) + min。一般的生成随机数方法: Random ran=new Random(); int temp=ran.Next(100);生成100以内的一个随机数;这是没有什么问题的 但是我们经常用到for循环生成多个随机数,这时候可能就会出现问题,如果你对随机数原理不是很了解的话,很可能会出现一个误区如: for(int i=0;i<100;i++) { Random ran=new Random(); int temp=ran.Next(100); Responsed.Write(temp.ToString()); } 这时候你会发现一个问题:生成的所有的随机数都是一样的,不管你ran.Next的值怎么设置都是一样的,为是为什么呢,这就是我们要说的一种误区,其实正确的写法是这样的: Random ran=new Random(); for(int i=0;i<100;i++) { int temp=ran.Next(100); Responsed.Write(temp.ToString()); } 看看是不是得到了自己想要的东西。呵呵 转自:http://hi.baidu.com/arqq1230/blog/item/770fb1fab1b7ed9f58ee901c.html
View Details本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhangyj_315/archive/2009/03/06/3962394.aspx 这几天在用ASP.NET控件做一个简单的留言本,在测试detailsview实现插入留言时,如果在插入模板的textbox中插入<script>alert(“hello”)</script>这样一段脚本时,就会报从客户端中检测到有潜在危险的 Request.Form 值。想到前面一段时间在MSDN上的看到通过对字符串应用 HTML 编码在 Web 应用程序中防止脚本侵入这一节的内容,所以想在代码中利用htmlencode()对输入内容进行编码以防止脚本的入侵。但是如果要对整个网站的输入框进行验证,这种做法显然是比较繁琐的。所以就在google了一下,于是就得到了下面的四种解决办法。 由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值。立马报错上面的错误。 如:在网页的TextBox1中输入一些HTML代码,点提交按钮后会报错。 解决办法: 解决方案一: 在.aspx文件头中加入这句: <%@ Page validateRequest="false" %> 解决方案二: 修改web.config文件: <configuration> <system.web> <pages validateRequest="false" /> </system.web> </configuration> 因为validateRequest默认值为true。只要设为false即可。 补充:
|
1 2 3 |
<system.web> <httpRuntime requestValidationMode="2.0" /> </system.web> |
解决方案三: 当然,这样只能是让界面好看一些,要想抵制注入,还得从过滤上做足功夫 然后,还是有不禁用validateRequest的方法的,如下 不禁用validateRequest=false。 正确的做法是在你当前页面添加Page_Error()函数,来捕获所有页面处理过程中发生的而没有处理的异常。然后给用户一个合法的报错信息。如果当前页面没有Page_Error(),这个异常将会送到Global.asax的Application_Error()来处理,你也可以在那里写通用的异常报错处理函数。如果两个地方都没有写异常处理函数,才会显示这个默认的报错页面呢。 举例而言,处理这个异常其实只需要很简短的一小段代码就够了。在页面的Code-behind页面中加入这么一段代码: 以下是引用片段: protected void Page_Error(object sender, EventArgs e) { Exception ex = Server.GetLastError(); if (ex is HttpRequestValidationException) { Response.Write("请您输入合法字符串。"); Server.ClearError(); // 如果不ClearError()这个异常会继续传到Application_Error()。 } } 解决方案四: 在Global.asax文件的Application_Error()来处理。这样在整个网站中都生效。 void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 Exception ex = Server.GetLastError(); if (ex is HttpRequestValidationException) { Response.Write("请您输入合法字符串。"); Server.ClearError(); // 如果不ClearError()这个异常会继续传到Application_Error()。 } }
View DetailsC#的String.Format举例2006-12-12 16:05stringstr1 =string.Format("{0:N1}",56789); //result: 56,789.0stringstr2 =string.Format("{0:N2}",56789); //result: 56,789.00stringstr3 =string.Format("{0:N3}",56789); //result: 56,789.000stringstr8 =string.Format("{0:F1}",56789); //result: 56789.0stringstr9 =string.Format("{0:F2}",56789); //result: 56789.00stringstr11 =(56789 / 100.0).ToString("#.##"); //result: 567.89stringstr12 =(56789 / 100).ToString("#.##"); //result: 567 C 或 c货币Console.Write("{0:C}", 2.5); //$2.50Console.Write("{0:C}", -2.5); //($2.50) D 或 d十进制数Console.Write("{0:D5}", 25); //00025 E 或 e科学型Console.Write("{0:E}", 250000); //2.500000E+005 F 或 f固定点Console.Write("{0:F2}", 25); //25.00Console.Write("{0:F0}", 25); //25 G 或 g常规Console.Write("{0:G}", 2.5); //2.5 N 或 n数字Console.Write("{0:N}", 2500000); //2,500,000.00 X 或 x十六进制Console.Write("{0:X}", 250); /******************************************************************************/ASP.NET设置数据格式与String.Format使用总结(引) {0:d} YY-MM-DD {0:p} 百分比00.00% {0:N2} 12.68 {0:N0} 13 {0:c2} $12.68 {0:d} 3/23/2003 {0:T} 12:00:00 AM {0:男;;女} DataGrid-数据格式设置表达式 数据格式设置表达式 .NET Framework 格式设置表达式,它在数据显示在列中之前先应用于数据。此表达式由可选静态文本和用以下格式表示的格式说明符组成: {0:format […]
View Detailsusing System; namespace combinaton{ /// <summary> /// Summary description for Class1. /// </summary> class Class1 { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { // // TODO: Add code to start application here // Console.WriteLine("please input n :"); long n=long.Parse(Console.ReadLine()); Console.WriteLine("please input r :"); long r=long.Parse(Console.ReadLine()); combinaton(n,r); Console.ReadLine(); } static void combinaton(long n,long r) { if(n<r) { long temp; temp=n; n=r; r=temp; } long[] s=new long[n]; long count = combi(n,r); Console.WriteLine("there are total:{0}count:",count); for(long i=0;i<r;i++) { s[i]=i+1; Console.Write("{0}",s[i]); } Console.WriteLine(); for(long i=1;i<count;i++) { […]
View Details转自:http://xdenggao.blog.163.com/blog/static/19204510201022024848561/ 改成正式版操作步骤:控制面版>添加或删除程序>卸载vs.net2008>出现卸载界面>点击Next>输入下面CD-key ->点击升级->出现成功画面即可完美将试用版升级成为正式版。 CDKEY:PYHYP-WXB3B-B2CCM-V9DX9-VDY8T 。 在Windows 7下,VS2008试用版无法正常升级到正式版。原因是维护页面的注册码输入框和升级按钮被隐藏。通过本补丁,可让注册码输入框和升级按钮恢复正常显示。 补丁下载地址 ———————————————————— 关键函数如下: void CREGVS2008Dlg::OnBnClickedButtonAutoreg(){ // 要查找的VS2008版本列表 const TCHAR* szCaption[] = { TEXT("Microsoft Visual Studio 2008 安装程序 – 维护页"), // 简体中文版 TEXT("Microsoft Visual Studio 2008 安裝程式 – 維護頁"), // 繁体中文版 TEXT("Microsoft Visual Studio 2008 Setup – Maintenance Page") // 英文版 }; HWND hWnd; UINT i, uNum; // 定位“Microsoft Visual Studio 2008 安装程序 – 维护页”窗口 uNum = sizeof(szCaption) / sizeof(const TCHAR*); for( i = 0; i < uNum; i++ ) { hWnd = ::FindWindow( NULL, szCaption[i] ); if( hWnd != NULL ) { // 窗口发现 break; } } if( i == uNum ) { // 没有找到VS2008维护页窗口 MessageBox( TEXT("没有发现“Microsoft Visual Studio 2008 安装程序 – 维护页”窗口!") ); return; } // 进入第1层子窗口 hWnd […]
View Detailsint intTotal = Request.Files.Count; if (intTotal > 0) { for (int i = 0; i < intTotal ; i++) { HttpPostedFile file = Request.Files[i]; if (file.ContentLength > 0 || !string.IsNullOrEmpty(file.FileName)) { string[] strarr = file.FileName.Split('\\'); string filename = strarr[strarr.GetLength(0) – 1]; //保存文件 file.SaveAs(System.Web.HttpContext.Current.Server.MapPath("./file/" + filename)); Response.Write(i+1+"."+filename+"<br />"); } } }else{ Response.Write("得选个文件吧?"); }
View DetailsWPF概述WPF为Windows Presentation Foundation的缩写 ,其原来代号为“Avalon”,因“我佩服”拼音首字母组合一样,国内有人调侃地称之为“我佩服”。WPF是微软新一代图形系统,运行在.NET Framework 3.0架构下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。基于DirectX 9/10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面,比如Vista中的半透明效果的窗体等都得益于 WPF。 程序员在WPF的帮助下,要开发出媲美Mac程序的酷炫界面已不再是遥不可及的奢望。 WPF相对于Windows客户端的开发来说,向前跨出了巨大的一步,它提供了超丰富的.NET UI 框架,集成了矢量图形,丰富的流动文字支持flow text support,3D视觉效果和强大无比的控件模型框架。[编辑本段]Windows Presentation FoundationWindows Presentation Foundation(以前的代号为“Avalon”)是 Microsoft 用于 Windows 的统一显示子系统,它通过 WinFX 公开。它由显示引擎和托管代码框架组成。Windows Presentation Foundation 统一了 Windows 创建、显示和操作文档、媒体和用户界面 (UI) 的方式,使开发人员和设计人员可以创建更好的视觉效果、不同的用户体验。Windows Presentation Foundation 发布后(计划在 2006 年),Windows XP、Windows Server 2003 和以后所有的 Windows 操作系统版本都可以使用它。Windows Presentation FoundationWindows Presentation Foundation 由两个主要部分组成:引擎和编程框架。? Windows Presentation Foundation 引擎。Windows Presentation Foundation 引擎统一了开发人员和设计人员体验文档、媒体和 UI 的方式,为基于浏览器的体验、基于窗体的应用程序、图形、视频、音频和文档提供了一个单一的运行时库。Windows Presentation Foundation 使得应用程序不仅能够充分利用现代计算机中现有的图形硬件的全部功能,而且能够利用硬件将来的进步。例如,Windows Presentation Foundation 的基于矢量的呈现引擎使应用程序可以灵活地利用高 DPI 监视器,而无需开发人员或用户进行额外的工作。 同样,当 Windows Presentation Foundation 检测到支持硬件加速的视频卡时,它将利用硬件加速功能。? Windows Presentation Foundation 框架。Windows Presentation Foundation 框架为媒体、用户界面设计和文档提供的解决方案远远超过开发人员现在所拥有的。Windows Presentation Foundation 的设计考虑了可扩展性,使开发人员可以完全在 Windows Presentation Foundation 引擎的基础上创建自己的控件,也可以通过对现有 Windows Presentation Foundation 控件进行再分类来创建自己的控件。Windows […]
View Details