惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
Arctic Wolf
U
Unit 42
爱范儿
爱范儿
WordPress大学
WordPress大学
博客园 - 司徒正美
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
美团技术团队
博客园_首页
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
P
Palo Alto Networks Blog
H
Hacker News: Front Page
博客园 - 叶小钗
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
罗磊的独立博客
TaoSecurity Blog
TaoSecurity Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Help Net Security
Help Net Security
雷峰网
雷峰网
S
Security @ Cisco Blogs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Forbes - Security
Forbes - Security
T
Troy Hunt's Blog
V
V2EX
博客园 - 聂微东
Cloudbric
Cloudbric
大猫的无限游戏
大猫的无限游戏
Google Online Security Blog
Google Online Security Blog
S
Security Affairs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Recent Commits to openclaw:main
Recent Commits to openclaw:main
IT之家
IT之家
S
SegmentFault 最新的问题
T
Threat Research - Cisco Blogs
J
Java Code Geeks
H
Heimdal Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Know Your Adversary
Know Your Adversary
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
The GitHub Blog
The GitHub Blog
AWS News Blog
AWS News Blog
The Cloudflare Blog
Simon Willison's Weblog
Simon Willison's Weblog
月光博客
月光博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - 张谊

[转]ubuntu下 手动安装 LAMP 和 JAVA环境 [转]ViewState的使用 [转]Working with user roles and permissions in SharePoint Object Model [原]SharePoint文档库上传文档 [原]SharePoint列表与文档库EventHandeler [转]ASP.NET缓存概念及其应用浅析 window.showModalDialog以及window.open用法简介 [原]欢迎加入QQ群 [原]如何在Silverlight中使用WebService绑定DataGrid [转]Silverlight中调用远程Web Service的权限问题 [转]BeanUtils接口和类 [原]Commons- BeanUtils学习笔记 [转]Apache+Tomcat负载均衡及Session绑定的实现 [原]基于Caché多维数据库的SSH实现 [原]关于支付宝API开发的一点心得 [原]Oracle中列自增的方法 [原]Java反射示例 [原]JavaSocket实现广播聊天室 《生命如一泓清水》
[转]翻译 一些很酷的.Net技巧
张谊 · 2008-07-31 · via 博客园 - 张谊

原作出处:http://www.codeproject.com/useritems/tips.asp?df=100

一..Net Framework

1. 如何获得系统文件夹

使用System.Envioment类的GetFolderPath方法;例如:

Environment.GetFolderPath( Environment.SpecialFolder.Personal )

2. 如何获得正在执行的exe文件的路径

1) 使用Application类的ExecutablePath属性

2) System.Reflection.Assembly.GetExecutingAssembly().Location

3. 如何检测操作系统的版本

使用EnviomentOSVersion属性,例如:

OperatingSystem os = Environment.OSVersion;

MessageBox.Show(os.Version.ToString());

MessageBox.Show(os.Platform.ToString());

4. 如何根据完整的文件名获得文件的文件名部分、

使用System.IO.Path类的方法GetFileName或者GetFileNameWithoutExtension方法

5. 如何通过文件的全名获得文件的扩展名

使用System.IO.Path.GetExtension静态方法

6. Vbc#的语法有什么不同click here

7. 如何获得当前电脑用户名,是否联网,几个显示器,所在域,鼠标有几个键等信息

使用System.Windows.Forms. SystemInformation类的静态属性

8. 修饰Main方法的[STAThread]特性有什么作用

标示当前程序使用单线程的方式运行

9. 如何读取csv文件的内容

通过OdbcConnection可以创建一个链接到csv文件的链接,链接字符串的格式是:"Driver={Microsoft Text Driver (*.txt;*.csv)};Dbq="+cvs文件的文件夹路径+"          Extensions=asc,csv,tab,txt; Persist Security Info=False";

创建连接之后就可以使用DataAdapter等存取csv文件了。

详细信息见此处

10. 如何获得磁盘开销信息,代码片断如下,主要是调用kernel32.dll中的GetDiskFreeSpaceEx外部方法。

public sealed class DriveInfo
{
    [DllImport(
"kernel32.dll", EntryPoint = "GetDiskFreeSpaceExA")]
    
private static extern long GetDiskFreeSpaceEx(string lpDirectoryName,
        
out long lpFreeBytesAvailableToCaller,
        
out long lpTotalNumberOfBytes,
        
out long lpTotalNumberOfFreeBytes);

    
public static long GetInfo(string drive, out long available, out long total, out long free)
    
{
        
return GetDiskFreeSpaceEx(drive, out available, out total, out free);
    }


    
public static DriveInfoSystem GetInfo(string drive)
    
{
        
long result, available, total, free;
        result 
= GetDiskFreeSpaceEx(drive, out available, out total, out free);
        
return new DriveInfoSystem(drive, result, available, total, free);
    }

}


public struct DriveInfoSystem
{
    
public readonly string Drive;
    
public readonly long Result;
    
public readonly long Available;
    
public readonly long Total;
    
public readonly long Free;

    
public DriveInfoSystem(string drive, long result, long available, long total, long free)
    
{
        
this.Drive = drive;
        
this.Result = result;
        
this.Available = available;
        
this.Total = total;
        
this.Free = free;
    }

}

可以通过

DriveInfoSystem info = DriveInfo.GetInfo("c:");来获得指定磁盘的开销情况

11.如何获得不区分大小写的子字符串的索引位置

         1)通过将两个字符串转换成小写之后使用字符串的IndexOf方法:

string strParent = "The Codeproject site is very informative.";

string strChild = "codeproject";

// The line below will return -1 when expected is 4.
int i = strParent.IndexOf(strChild);

// The line below will return proper index
int j = strParent.ToLower().IndexOf(strChild.ToLower());

        2) 

一种更优雅的方法是使用System.Globalization命名空间下面的CompareInfo类的IndexOf方法:

using System.Globalization;

string strParent = "The Codeproject site is very informative.";

string strChild = "codeproject";
// We create a object of CompareInfo class for a neutral culture or a culture insensitive object
CompareInfo Compare = CultureInfo.InvariantCulture.CompareInfo;

int i = Compare.IndexOf(strParent,strChild,CompareOptions.IgnoreCase);

. OOPs

1. 什么是复制构造函数

 我们知道构造函数是用来初始化我们要创建实例的特殊的方法。通常我们要将一个实例赋值给另外一个变量c#只是将引用赋值给了新的变量实质上是对同一个变量的引用,那么我们怎样才可以赋值的同时创建一个全新的变量而不只是对实例引用的赋值呢?我们可以使用复制构造函数。

我们可以为类创造一个只用一个类型为该类型的参数的构造函数,如:

public Student(Student student)
{
 
this.name = student.name;
}

使用上面的构造函数我们就可以复制一份新的实例值,而非赋值同一引用的实例了。

class Student
{
     
private string name;

     
public Student(string name)
     
{
         
this.name = name;
     }

     
public Student(Student student)
     
{
         
this.name = student.name;
     }


    
public string Name 
    
{
       
get 
       
{
              
return name; 
       }

       
set 
       
{
            name 
= value; 
       }

    }

}


class Final

{

    
static void Main()

      
{

        Student student 
= new Student ("A");

        Student NewStudent 
= new Student (student);

        student.Name 
= "B";

        System.Console.WriteLine(
"The new student's name is {0}", NewStudent.Name);

      }


}

The new student's name is A.

2.什么是只读常量

就是静态的只读变量,它通常在静态构造函数中赋值。 

class Numbers
{
    
public readonly int m;
    
public static readonly int n;

    
public Numbers (int x)
    
{
       m
=x;
    }


    
static Numbers ()
    
{
        n
=100;
    }


 }
 //其中n就是一个只读的常量,对于该类的所有实例他只有一种值,而m则根据实例不同而不同

三.VS.Net IDE

1. 2请看原作

3.如何改变region的颜色

   通过工具 à 选项 à 环境 à 字体和颜色 à 可折叠文本设置

四.WinForm

1.如何使winForm不显示标题栏?

通过设置formText属性为空字符串,设置ControlBox属性为false

form1.Text = string. Empty;

form1.ControlBox = false;

2.如何使winform的窗体使用XP的风格

见原作

3.如何禁止form在工具栏显示

设置formShowInTaskbar属性为false即可

4.如何使程序打开默认的邮件程序并带有一些参数让用户开始写邮件

         1)如果是web程序:

         <a href=”mailto:email@address1.com,email@address2.com?cc=email@address3.com&amp;amp;amp;Subject=Hello&amp;amp;amp;body=Happy%20New%20Year”>some text</a>

         2) 对于windows程序,需要使用System.Diagnostics.Process

Process process = new Process();
process.StartInfo.FileName 
= "mailto:email@address1.com,email@address2.com?subject=Hello&cc=email@address3.com
&bcc=email@address4.com&body=Happy New Year" ;

process.Start();

5.如何创建类似msn提示窗口

需要获得通过Screen.GetWorkingArea(this).WidthHeight)属性获得屏幕的大小,然后使用一个timer根据时间改变窗口的位置

五.Button控件

1.如何设置form的默认button(即在form上按下回车时触发的button

         可以设置formAcceptButton属性:form1.AcceptButton = button1;

2. 如何设置form的取消button(即在用户按下Esc键时触发的button

         可以设置formCancelButton属性:form1.CancelButton = buttonC;

3. 如何通过程序触发一个buttonClick事件

         Button1.PerformClick

六.Combo Box

1.如何使用可选字体填充Combo Box

comboBox1.Items.AddRange (FontFamily.Families);

七.TextBox

1.如何禁用TextBox的默认上下文菜单(右键菜单)

textBox1.ContextMenu = new ContextMenu();

2,3 见原作

4.如何在TextBox获得焦点的时候,将焦点放在textBox文字的最后

textBox1.SelectionStart = textBox1.Text.Length;