分类目录归档:计算机杂谈

c# static 类/方法修饰关键字简介


摘要

下文主要讲述static静态修饰关键字的用途 优点 应用场景



目录

static 关键字简介
static 举例应用
static静态关键字特点及应用场景
static静态关键字优点



static 关键字简介

static关键字主要用于修饰类 字段 方法 属性 运算符 事件 构造函数,
static关键字不可修饰 索引器 或类以外的类型


static 举例应用

1 static 静态类 中只能含有静态成员(禁止含有非静态方法)

 public class testStaticClass{
       public static void test1(){}
	   public static void test2(){}
	   private  static string testInfo ="";
 }

2 非静态类 中申请静态方法,可以在非实例化的方式下直接引用静态方法

namespace testPerson
{
    public class testClass1
    {
        public static void  testc(string s)
        {
            return;
        }         
    }    
}
namespace testPerson2
{
    public class testClass2
    {
        private void test2()
        {
            testPerson.testClass1.testc(""); //直接调用静态方法
        }
    }    
}


static静态关键字特点及应用场景

1. 静态方法,在类中的调用方法如下所示:

命名空间名称.类名.方法名([方法参数])

2. 内存化

静态成员在系统第一次调用时,进行初始化。
非静态成员在实例化时,生成对象

3.静态数据存储

静态数据在整个程序中,只有一块存储空间,及静态变量在整个系统中具有唯一值

4.静态数据释放

静态数据在程序中,一直存放,只到程序关闭(web程序中,回收应用程序池后,静态变量会释放)

5.静态修饰符应用场景

5.1 静态变量的应用场景,例 系统登陆用户总数 系统配置信息 系统设置
5.2 静态类及方法应用场景: 如果一个方法的功能为 输入变量的操作,如类中其它变量并无关联,则建议此类设置为静态类(例 字符串分隔方法 两个输入变量的比较)



static静态关键字优点

1.访问方式简单方便,
2.共享全局变量,使访问全局变量简洁高效

c# webService https访问异常–远程证书无效的解决办法


问题描述:

1 c#中直接引用http webService,近期将以前的http web协议修改为 https后,系统立马后产生以下错误信息

“根据验证过程 远程证书无效”

分析原因,c#访问时候,服务器端没有此证书,所以无法和远程的webService进行交互访问。



解决办法:

定义一个静态类,对webService所有访问中,远程证书进行验证,返回true

   using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;


namespace webHelper
{
    public static class removeWebServiceCertificateValidate
    {
         
        /// 
        /// 设置信任所有证书
        /// 
        public static void SetCertValild()
        {
            ServicePointManager.ServerCertificateValidationCallback
                       += RemoveCertificateCheck;
        }

        /// 
        /// 移除证书验证
        /// 
        private static bool RemoveCertificateCheck(
           object sender, X509Certificate cert,
            X509Chain chain, SslPolicyErrors error)
        {
            //信任所有证书 
            return true;
        }

    }
}



调用方式:
在所有的webservice调用方法前 调用此方法
removeWebServiceCertificateValidate.SetCertValild(); //信任所有证书
webService.HelloWorld();

偶遇系统故障记载?

今天偶遇系统故障,sql操作无任何报错信息,
系统查询时好时坏,无从查找系统异常的原因。
报表模块,偶尔能展示数据,偶尔不展示数据,搞的大家都要怀疑人生了,


—————————————————-
经同事核查,然来是数据库服务器硬盘占满,导致 应用程序涉及数据库操作模块,出现 无法启动事务
无法获取数据库返回行数