C#程序員統(tǒng)計(jì)自己的代碼行數(shù)
很多程序員都以自己寫的代碼的行數(shù)作為自己程序員閱歷的一個(gè)標(biāo)志,如何統(tǒng)計(jì)呢,以下是具體內(nèi)容。
小編,已經(jīng)快學(xué)了兩年編程了。昨天突發(fā)奇想,想統(tǒng)計(jì)下這些年到底寫過多少行代碼,于是做了一個(gè)這個(gè)小程序來(lái)統(tǒng)計(jì)代碼行數(shù)。老規(guī)矩,先上圖。

比較慚愧,寫了兩年只有2萬(wàn)多行。那我們還是進(jìn)入下一項(xiàng)吧。
界面搭建我也不說了,我就講一下思路和核心代碼,最后附上源代碼。Life_Programmer、Serch_Files。
思路:我們點(diǎn)擊刷新按鈕,他會(huì)彈出一個(gè)小窗口讓我們選擇要搜索的區(qū)域。這個(gè)原理在我的C#游戲進(jìn)程殺手的隨筆講過了,這里就不贅述了。

關(guān)于這個(gè)搜索小窗口,我覺得適用范圍很廣,我是把它做成了一個(gè).dll文件引入到我們這個(gè)主程序的。這個(gè)小窗口我也會(huì)附上源碼在本篇隨筆。
那我們這次主要講講和上一次不一樣的地方。
既然我們把它這個(gè)小窗口封裝起來(lái)了,那么我們就要給予它最大的靈活性。目的:讓它搜索出我們想要的東西。
那么達(dá)成這個(gè)目的,我們需要明確兩點(diǎn):
1)要搜索文件的名字。(或者說要搜索的字段)
2)要搜索文件的類型。(文件名,還是后綴名)
所以為了完成這兩點(diǎn),我們需要將將要搜索的字段封裝在這個(gè)小窗體里,設(shè)置一個(gè)屬性對(duì)外提供訪問接口。
List<string> SerchName = new List<string>(); //要查找的字段
public List<string> SerchName1
{
get { return SerchName; }
set { SerchName = value; }
}
//設(shè)置查找文件類型
private int i;
public int I
{
get { return i; }
set { i = value; }
}
將這兩個(gè)字段封裝好,在我們的主窗體內(nèi)對(duì)其賦值即能提供其最大的靈活性。
那么接下來(lái)我們重點(diǎn)來(lái)聊聊子窗體中FinleFile類
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Serch_File
{
class FindFile
{
public List<string> lst1 = new List<string>();
public List<string> getFile(string path, string extName, int i)//創(chuàng)建一個(gè)List<FileInfo>類型的函數(shù)
{
getdir(path, extName, i);//傳入路徑、搜索的字段 、將要搜索的類型
return lst1;
}
private void getdir(string path, string extName, int i)
{
try
{
//獲取文件夾列表
string[] dirs = Directory.GetDirectories(path); DirectoryInfo fdir = new DirectoryInfo(path);
FileInfo[] file = fdir.GetFiles();
//當(dāng)前目錄文件或目錄不為空
if (file.Length != 0 || dirs.Length != 0)
{
foreach (FileInfo f in file)
{
switch (i)
{
case 0: if (extName == f.Name) //根據(jù)文件名匹配上
{
lst1.Add(f.Name);
} break;
case 1: if (extName == f.Extension) //根據(jù)后綴名匹配上
{
lst1.Add(f.FullName);
} break;
}
}
foreach (string d in dirs)
{
getdir(d, extName, i);//遞歸
}
}
}
catch
{
}
}
}
}
大家注意在24行遍歷文件夾列表時(shí),我們會(huì)在盤符下面遍歷到一個(gè)零時(shí)文件夾,其中索引為0的值似乎是一個(gè)亂碼,其實(shí)不然這是我們盤符下的系統(tǒng)隱藏文件夾。大家可以不管它。

那最后我們來(lái)談?wù)勗趺窗岩粋€(gè)窗體封裝成dll文件,供其它項(xiàng)目引用。
1、生成dll文件
右鍵我們的項(xiàng)目名稱,點(diǎn)擊進(jìn)入屬性。


把輸出類型改為類庫(kù),然后點(diǎn)擊生成解決方案。就會(huì)在本程序的Debug目錄下生成一個(gè)dll文件。
2、將dll引入目標(biāo)項(xiàng)目
把我們生成的dll文件先復(fù)制拷貝到目標(biāo)項(xiàng)目的debug目錄下。然后右擊引用,找到添加引用。


點(diǎn)擊瀏覽找到我們的dll文件。
再在我們的代碼中導(dǎo)入命名空間

然后就成功了。
試試:

ok,沒問題。
最后希望各位能再完善完善我們的搜索小功能。
以上就是關(guān)于統(tǒng)計(jì)自己寫了多少行代碼的一個(gè)方法,作為程序員,趕快統(tǒng)計(jì)一下吧。
相關(guān)文章
C#的FileSystemWatcher用法實(shí)例詳解
這篇文章主要介紹了C#的FileSystemWatcher用法,以實(shí)例形似詳細(xì)分析了FileSystemWatcher控件主要功能,并總結(jié)了FileSystemWatcher控件使用的技巧,需要的朋友可以參考下2014-11-11
c# 在windows服務(wù)中 使用定時(shí)器實(shí)例代碼
這篇文章主要介紹了c# 在windows服務(wù)中 使用定時(shí)器實(shí)例代碼,有需要的朋友可以參考一下2013-12-12
C# WinForms中實(shí)現(xiàn)MD5的加密
MD5(消息摘要算法第5版)是一種廣泛使用的哈希函數(shù),可以生成一個(gè)128位(16字節(jié))的哈希值,通常用于數(shù)據(jù)完整性校驗(yàn)和密碼存儲(chǔ),在Windows Forms應(yīng)用程序中實(shí)現(xiàn)MD5加密,可以用于用戶密碼的安全存儲(chǔ)和數(shù)據(jù)的完整性驗(yàn)證,本文將詳細(xì)介紹了如何在WinForms中實(shí)現(xiàn)MD5加密2024-10-10
C#實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能完整實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能,結(jié)合完整實(shí)例形式分析了C#實(shí)現(xiàn)常見的數(shù)學(xué)運(yùn)算、進(jìn)制轉(zhuǎn)換等相關(guān)操作技巧與界面布局方法,需要的朋友可以參考下2017-08-08
C#事件中的兩個(gè)參數(shù)詳解(object sender,EventArgs e)
這篇文章主要介紹了C#事件中的兩個(gè)參數(shù)詳解(object sender,EventArgs e),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09

