C#的一些小知識

CSS中的繼承

CSS的單位

  • 絕對單位

    相對單位

    英寸in

    字母高em

    釐米cm

    字母x的高ex

    毫米mm

    像素px

    磅pt

    百分比%

  • pt:1pt等於1/72英寸
  • px:像素,計算機屏幕上的一個點
  • em:1em相當於當前字體尺寸,2em相當於當前字體尺寸的2倍。在 CSS 中,em 是非常有用的單位,因爲它可以自動適應用戶所使用的字體。
  • ex:一個 ex 是一個字體的 x-height。 (x-height 通常是字體尺寸的一半。)
  • %:基於當前字體的一個百分比值

CSS 外邊距屬性(Margin)

  • 屬性

    描述

    margin

    在一個聲明中設置所有外邊距屬性。

    margin-bottom

    設置元素的下外邊距。

    margin-left

    設置元素的左外邊距。

    margin-right

    設置元素的右外邊距。

    margin-top

    設置元素的上外邊距。

  • margin 簡寫屬性在一個聲明中設置所有外邊距屬性。該屬性可以有 1 到 4 個值。

網頁上字體樣式

  • CSS是用來規範頁面表現形式,主要通過以下三種方式:
    • 元素內聯:直接將樣式寫入元素的style屬性,適用於樣式不需要複用的場合
    • 頁面嵌入:加入到頁面的<head>部分,適用於樣式在同一個頁面中複用

    • 外部引用:將CSS內容寫入擴展名爲css的文件,在<head>中加入 <link href="css/main.css" rel="stylesheet" type="text/css" />,適用於多個頁面共享CSS

      • CssClass屬性:用於設置或返回控件的 CSS 樣式類。

        • 比如,在main.css文件中定義了字體樣式.lbShowTask,此時想要設置控件Label的樣式,可以寫做<asp:Label ID="lbShowTask" runat="server" CssClass="lbShowTask"/>

  • CSS的font屬性:font 簡寫屬性在一個聲明中設置所有字體屬性
    • font-sytle:規定字體樣式,可能的值:

      描述

      normal

      默認值。瀏覽器顯示一個標準的字體樣式。

      italic

      瀏覽器會顯示一個斜體的字體樣式。

      oblique

      瀏覽器會顯示一個傾斜的字體樣式。

      inherit

      規定應該從父元素繼承字體樣式。

    • font-variant屬性設置小型大寫字母的字體顯示文本,這意味着所有的小寫字母均會被轉換爲大寫,但是所有使用小型大寫字體的字母與其餘文本相比,其字體尺寸更小。可能的值:

      描述

      normal

      默認值。瀏覽器會顯示一個標準的字體。

      small-caps

      瀏覽器會顯示小型大寫字母的字體。

      inherit

      規定應該從父元素繼承 font-variant 屬性的值。

    • font-weight屬性設置文本的粗細。可能的值:

      描述

      normal

      默認值。定義標準的字符。

      bold

      定義粗體字符。

      bolder

      定義更粗的字符。

      lighter

      定義更細的字符。

      100,200,300,400,500,600,700,800,900

      定義由粗到細的字符。400 等同於 normal,而 700 等同於 bold。

      inherit

      規定應該從父元素繼承字體的粗細。

    • font-size 屬性可設置字體的尺寸。可能的值:

      描述

      xx-small,x-small,small,medium,large,x-large,xx-large

      把字體的尺寸設置爲不同的尺寸,從 xx-small 到 xx-large。默認值:medium。

      smaller

      把 font-size 設置爲比父元素更小的尺寸。

      larger

      把 font-size 設置爲比父元素更大的尺寸。

      length

      把 font-size 設置爲一個固定的值。

      %

      把 font-size 設置爲基於父元素的一個百分比值。

      inherit

      規定應該從父元素繼承字體尺寸。

    • line-height 屬性設置行間的距離(行高)。可能的值:

      描述

      normal

      默認。設置合理的行間距。

      number

      設置數字,此數字會與當前的字體尺寸相乘來設置行間距。

      length

      設置固定的行間距。

      %

      基於當前字體尺寸的百分比行間距。

      inherit

      規定應該從父元素繼承 line-height 屬性的值。

    • font-family可以把多個字體名稱作爲一個“回退”系統來保存。如果瀏覽器不支持第一個字體,則會嘗試下一個。也就是說,font-family 屬性的值是用於某個元素的字體族名稱或/及類族名稱的一個優先表。瀏覽器會使用它可識別的第一個值。
      • 有兩種類型的字體系列名稱:
        • 指定的系列名稱:具體字體的名稱,比如:"times"、"courier"、"arial"。
        • 通常字體系列名稱:比如:"serif"、"sans-serif"、"cursive"、"fantasy"、"monospace"
    • 其他屬性

      描述

      caption

      定義被標題控件(比如按鈕、下拉列表等)使用的字體。

      icon

      定義被圖標標記使用的字體。

      menu

      定義被下拉列表使用的字體。

      message-box

      定義被對話框使用的字體。

      small-caption

      caption 字體的小型版本。

      status-bar

      定義被窗口狀態欄使用的字體。

Esc的退出功能

  • javascript:
     function onKeyDown(e) {
       if (e && e.keyCode == Sys.UI.Key.esc) {
              $find('ModalPopupExtenderDiffDetail').hide();
            }
         }

border賦值

  • CSS的border 簡寫屬性在一個聲明設置所有的邊框屬性。可能的值:
  • 描述

    border-width

    規定邊框的寬度。參閱:border-width 中可能的值。

    border-style

    規定邊框的樣式。參閱:border-style 中可能的值。

    border-color

    規定邊框的顏色。參閱:border-color 中可能的值。

    inherit

    規定應該從父元素繼承 border 屬性的設置。

    • border-width

      描述

      thin

      定義細的邊框。

      medium

      默認。定義中等的邊框。

      thick

      定義粗的邊框。

      length

      允許您自定義邊框的寬度。

      inherit

      規定應該從父元素繼承邊框寬度。

    • border-style

      描述

      none

      定義無邊框。

      hidden

      與 "none" 相同。不過應用於表時除外,對於表,hidden 用於解決邊框衝突。

      dotted

      定義點狀邊框。在大多數瀏覽器中呈現爲實線。

      dashed

      定義虛線。在大多數瀏覽器中呈現爲實線。

      solid

      定義實線。

      double

      定義雙線。雙線的寬度等於 border-width 的值。

      groove

      定義 3D 凹槽邊框。其效果取決於 border-color 的值。

      ridge

      定義 3D 壟狀邊框。其效果取決於 border-color 的值。

      inset

      定義 3D inset 邊框。其效果取決於 border-color 的值。

      outset

      定義 3D outset 邊框。其效果取決於 border-color 的值。

      inherit

      規定應該從父元素繼承邊框樣式。

    • border-color

      描述

      color_name

      規定顏色值爲顏色名稱的邊框顏色(比如 red)。

      hex_number

      規定顏色值爲十六進制值的邊框顏色(比如 #ff0000)。

      rgb_number

      規定顏色值爲 rgb 代碼的邊框顏色(比如 rgb(255,0,0))。

      transparent

      默認值。邊框顏色爲透明。

      inherit

      規定應該從父元素繼承邊框顏色

對比文件的滾動條同步功能

  • javascript函數
    • function OnScrollChanged() {
              xPos = document.getElementById('ctl00_MainContentPlaceHolder_panLeft');
              yPos = document.getElementById('ctl00_MainContentPlaceHolder_panLeft');
      
              document.getElementById('ctl00_MainContentPlaceHolder_panRight').scrollLeft = xPos.scrollLeft;
              document.getElementById('ctl00_MainContentPlaceHolder_panRight').scrollTop = yPos.scrollTop;
          }
  • Document對象:每個載入瀏覽器的 HTML 文檔都會成爲 Document 對象。它使我們可以從腳本中對 HTML 頁面中的所有元素進行訪問。
  • getElementById()方法可返回對擁有指定 ID 的第一個對象的引用。有很多查找元素的方法,除了 getElementById() 之外,還有 getElementsByName() 和 getElementsByTagName()。如果需要查找文檔中的一個特定的元素,最有效的方法是 getElementById(),該特定的元素具有一個唯一的名稱(id屬性)。

URL

  • 要簡單明瞭,容易記憶
  • 絕對路徑:被鏈接文檔的完整URL,包括所使用的傳輸協議(對於網頁通常是http://)。
  • 相對路徑:指以當前文件所在位置爲起點到被鏈接文件經由的路徑,比如相關頁面間的切換。
  • 根路徑:代表站點根文件

GridView中顯示內容按照DiffInfoId逆序排列

  1. 實現 private static int CompareDinosByInfoId(DiffInfo x, DiffInfo y)方法進行逆序,重寫IComparable 接口:

    private static int CompareDinosByInfoId(DiffInfo x, DiffInfo y)
            {
                if (x == null)
                {
                    if (y == null)
                        return 0;
                    else
                        return -1;
                }
                else
                {
                    if (y == null)
                        return 1;
                    else
                    {
                        int retval = y.InfoId.CompareTo(x.InfoId);
    
                        if (retval != 0)
                            return retval;
                        else
                            return y.InfoId.CompareTo(x.InfoId);
                    }
                }
            }
  2. 數組逆序:
    • Array.Reverse(Array):反轉整個一維 Array 中元素的順序。
    • Array.Reverse(Array, Int32, Int32):反轉一維 Array 中某部分元素的元素順序。
    • 原理:調用此方法之後,myArray[i](其中 i 爲數組中的任意一個索引)處的元素移到 myArray[j](其中 j 等於 (myArray.Length + myArray.GetLowerBound(0)) - (i - myArray.GetLowerBound(0)) - 1)。

    • 此方法的運算複雜度爲 O(n),其中 n 是 array 的 Length。
    • GetLowerBound(0) 返回 Array 的第一維的索引下限,GetLowerBound(Rank - 1) 返回 Array 的最後一維的下限。

    • 該 GetLowerBound 方法不受數組中元素數或數組爲空的影響。

此方法的運算複雜度是 O(1)。

Page_Load()中對於page_IsPosBack()的判斷

  • Page.IsPostBack 是用來檢查目前網頁是否爲第一次加載,當使用者第一次瀏覽這個網頁時Page.IsPostBack會傳回False,不是第一次瀏覽這個網頁時就傳回True!如果刷新的話,相當於第一次加載。在頁面上的每一次操作相當於Page_Load,但是要根據Page.IsPostBack的返回值判斷是否是第一次加載。

C#方面

String.Split方法

  • String.Split(Char())
    • 返回的字符串數組包含此實例中的子字符串,例如:
     string str = "46, 45,a:";
     string[] split = str.Split(new Char[]{',', ' ', ':'});
    split[0]:46 split[1]:45 split[2]:a
  • String.Split(Char(), Int32)
    • 返回的字符串數組包含此實例中的子字符串(由指定 Unicode 字符數組的元素分隔)。 參數指定返回的子字符串的最大數量。
  • String.Split(Char(), StringSplitOptions)

    • 返回的字符串數組包含此字符串中的子字符串(由指定 Unicode 字符數組的元素分隔)。 參數指定是否返回空數組元素。
    • StringSplitOptions枚舉:

      成員名稱

      說明

      None

      返回值包括含有空字符串的數組元素

      RemoveEmptyEntries

      返回值不包括含有空字符串的數組元素

  • String.Split(String(), StringSplitOptions)

    • 返回的字符串數組包含此字符串中的子字符串(由指定字符串數組的元素分隔)。 參數指定是否返回空數組元素。
  • String.Split(Char(), Int32, StringSplitOptions)

    • 返回的字符串數組包含此字符串中的子字符串(由指定 Unicode 字符數組的元素分隔)。 參數指定要返回子字符串的最大數量,以及是否返回空數組元素。
  • String.Split(String(), Int32, StringSplitOptions)

    • 返回的字符串數組包含此字符串中的子字符串(由指定字符串數組的元素分隔)。 參數指定要返回子字符串的最大數量,以及是否返回空數組元素。

查找方法的優化:不使用遍歷而是直接查找

變量命名

  • 控件的名稱要可以唯一定位控件
  • Flag

web.config和app.config

  • web.config文件是一個XML文本文件,用來儲存ASP.NET WEB應用程序的配置信息。可以應用於應用程序的每一個目錄,所有子目錄都繼承它的配置設置。是web應用程序的配置文件,爲web應用程序提供相關配置。在你開發的web程序中,你可以爲每一個文件夾建立一個web.config.
    • web.config文件默認配置
    • 自定義web.config文件
      • <configuration> 標記通常包含三種不同類型的元素,1) 配置節處理程序聲明,2) 配置節組,3) 配置節設置。

      • 配置節處理程序——ASP.NET 配置結構在 web.config 文件中的文件格式或支持的設置方面不進行任何假設。相反,它將處理 web.config 數據的任務委託給配置節處理程序,即實現 IConfigurationSectionHandler 接口的 .NET 框架類。單個 IConfigurationSectionHandler 聲明只需要出現一次,通常是在 machine.config 文件中。子目錄中的 web.config 文件自動繼承此聲明。配置節處理程序通過使用嵌套在 <configSections> 標記中的節標記指令在 web.config 文件中聲明。節標記可進一步由節組標記限定,將它們組織爲邏輯組(參見下文)。每個節標記標識一個表示特定配置數據節的標記名和一個處理該節的關聯 IConfigurationSectionHandler 類。

      • 配置節組——ASP.NET 配置允許出於組織目的對節進行分層分組。<sectionGroup> 標記可顯示在 <configSections> 標記的內部或其他 <sectionGroup> 標記的內部。例如,ASP.NET 節處理程序全都顯示在 <system.web> 節組中。

      • 配置節——ASP.NET 配置設置在配置標記節中表示,同時嵌套在 <configuration> 標記(和可選的節組標記)中。對於每個配置節,必須在 config 層次結構中定義適當的節處理程序。例如,在下面的示例中,標記 <httpModules> 是定義 HTTP 模塊配置數據的配置節。System.Configuration.HttpModulesConfigurationHandler 類負責在運行時解釋 <httpModules> 標記中包含的內容。注意,節處理程序定義和節必須具有相同的節組限定符(此處爲 <system.web>)。還應注意,標記名區分大小寫,必須按所顯示的原樣鍵入。ASP.NET 的各種屬性和設置也區分大小寫,並且配置運行時不檢查大小寫是否不匹配。

  • app.config文件是桌面應用程序的配置文件。在vs.net中創建一個桌面應用程序工程並添加了應用程序配置文件時,它會自動命名爲<appname>.exe.config,並且自動與你的程序進行關聯。

  • 區別
    1. 如果你對web.config進行了修改,你的web應用程序將立即加載新的web.config。而當你對app.config進行了修改,必須重新啓動桌面應用程序,app.config才能生效。
    2. app.config是桌面應用程序的配置文件,它不能用於Class類庫。web.config是ASP.NET應用程序的配置文件。
      • 比如說,在一個擁有web.config的ASP.NET應用程序項目中,包含一個用C#寫成的擁有app.config的class類庫,那麼當這個項目運行的時候,和它關聯的配置文件應該是web.config,而不是app.config,因爲它是一個ASP.NET應用程序。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章