JAVA轉C#開發筆記


 

 

版本發布

M1.使用WinRar創建安裝文件;

  S1.選擇Debug/Release目錄下所有文件,添加到壓縮文件 

  S2.創建自解壓格式壓縮文件

  S3.自解壓選項設置

調試部分

代碼調試手段

S1.控制台輸出Log工具;

    Console.WriteLine("Console log...");

    Debug.WriteLine("Debug log...");

Trace.WriteLine("Trace log...");

S2. Assert終止運行彈窗顯示錯誤信息方式;

    Debug.Assert(a < 50, "params error", "error code XCODE0023516");

    Trace.Assert(a > 50, "params error", "error code XCODE0023536");

S3. try{}catch(e){e.XXX;e.Message}精確捕獲異常位置;

    C#/JAVA/JS捕獲異常類似;

S4.本地LOG記錄日志;

   

備注:

     using System.Diagnostics; // Debug/Trace

 

VS開發環境斷點調試

S1.調試相關快捷鍵;

 

功能

快捷鍵

調試

單步

F11

運行調試

F5

運行

CTRL + F5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

其他調試手段

S1.進程停止運行;

    啟動任務管理器 => 進程 => 相應進程 => 創建轉存文件

    生成.dump的轉存文件,可以用VisualStudio打開分析。

 

C#測試代碼筆記

CMD命令工具類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp.Utils
{
    /// <summary>
    /// C#命令工具類,執行CMD命令
    ///     
    /// </summary>
    class CmdUtils
    {

        public static void TestCmdApi()
        {
            //ExecuteCMD(@"C:\Windows\System32\cmd.exe","ipconfig &exit");
            //ExecuteCMD(@"C:\Windows\System32\calc.exe", "");
            //ExecuteCMD("ipconfig &exit");
            // 殺死進程
            //    http://www.cnblogs.com/klchang/p/6257434.html
            //ExecuteCMD("taskkill /im calc.exe -f &exit");   // 殺死指定名稱進程
            //ExecuteCMD("taskkill /pid 16620 -f &exit");   // 殺死指定PID進程

            //
            KillProcess("calc");
        }

        // ----------------------------------CMD命令執行API
        //      http://www.cnblogs.com/babycool/p/3570648.html
        //      http://www.cnblogs.com/njl041x/p/3881550.html
        //      http://www.cnblogs.com/vaevvaev/p/7115721.html
        /// <summary>
        /// 執行cmd命令
        /// 多命令請使用批處理命令連接符:
        /// <![CDATA[
        /// &:同時執行兩個命令
        /// |:將上一個命令的輸出,作為下一個命令的輸入
        /// &&:當&&前的命令成功時,才執行&&后的命令
        /// ||:當||前的命令失敗時,才執行||后的命令]]>
        /// </summary>
        /// <param name="cmdExe">指定應用程序的完整路徑</param>
        /// <param name="cmdStr">執行命令行參數</param>
        public static bool ExecuteCMD(string cmdExe, string cmdStr)
        {
            bool result = false;
            try
            {
                using (Process myPro = new Process())
                {
                    //指定啟動進程是調用的應用程序和命令行參數
                    ProcessStartInfo psi = new ProcessStartInfo(cmdExe);
                    psi.UseShellExecute = false;
                    psi.RedirectStandardInput = true;
                    psi.RedirectStandardOutput = true;
                    psi.RedirectStandardError = true;
                    psi.CreateNoWindow = true;  // 不顯示程序窗口
                    myPro.StartInfo = psi;
                    myPro.Start();
                    myPro.StandardInput.WriteLine(cmdStr);
                    myPro.StandardInput.AutoFlush = true;
                    //string res = myPro.StandardOutput.ReadToEnd();
                    //Console.WriteLine(res);
                    //myPro.WaitForExit();
                    result = true;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            return result;
        }

        /// <summary>
        /// 運行cmd命令
        /// 不顯示命令窗口
        /// </summary>
        /// <param name="cmdStr">執行命令行參數</param>
        public static bool ExecuteCMD(string cmdStr)
        {
            bool result = false;
            try
            {
                using (Process myPro = new Process())
                {
                    myPro.StartInfo.FileName = "cmd.exe";
                    myPro.StartInfo.UseShellExecute = false;
                    myPro.StartInfo.RedirectStandardInput = true;
                    myPro.StartInfo.RedirectStandardOutput = true;
                    myPro.StartInfo.RedirectStandardError = true;
                    myPro.StartInfo.CreateNoWindow = true;
                    myPro.Start();
                    myPro.StandardInput.WriteLine(cmdStr);
                    myPro.StandardInput.AutoFlush = true;
                    string res = myPro.StandardOutput.ReadToEnd();
                    Console.WriteLine(res);
                    myPro.WaitForExit();
                    result = true;
                }
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message);
            }
            return result;
        }

        /// <summary>
        /// C#殺死指定名稱進程 失敗
        /// </summary>
        /// <param name="proName"></param>
        public static void KillProcess1(string proName) 
        {
            Process[] ps = System.Diagnostics.Process.GetProcessesByName(proName);
            foreach(Process p in ps)
            {
                p.Kill();
            }
        }

        /// <summary>
        /// C#殺死指定名稱進程
        ///     http://blog.csdn.net/daliaojie/article/details/17244283
        /// </summary>
        /// <param name="processName"></param>
        public static void KillProcess(string processName)
        {
            //獲得進程對象,以用來操作    
            System.Diagnostics.Process myproc = new System.Diagnostics.Process();
            //得到所有打開的進程     
            try
            {
                //獲得需要殺死的進程名    
                foreach (System.Diagnostics.Process thisproc in System.Diagnostics.Process.GetProcessesByName(processName))
                {
                    //立即殺死進程
                    thisproc.Kill();
                }
            }
            catch (Exception Exc)
            {
                throw new Exception("", Exc);
            }
        } 
    }
}
View Code

 

JSON解析

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

namespace ConsoleApp.FrameLib
{
    /// <summary>
    /// JSON數據解析測試
    /// Newtonsoft.Json
    ///     https://github.com/JamesNK/Newtonsoft.Json
    ///     http://www.newtonsoft.com/json
    ///     http://json.codeplex.com/
    ///     
    ///     http://www.cnblogs.com/ambar/archive/2010/07/13/parse-json-via-csharp.html
    /// </summary>
    class FrameJson
    {
        private static void TestJsonParseApi() 
        {
            // 對象轉成string測試
            Product product = new Product();
            product.Name = "Apple";
            product.Expiry = new DateTime(2008, 12, 28);
            product.Sizes = new string[] { "Small" };
            string resJson = JsonUtils.ObjectToJsonString(product);
            Console.WriteLine(resJson);

            // json string轉對象測試
            Object obj = JsonConvert.DeserializeObject<Product>(resJson);
            Console.WriteLine(obj);
        }


        public static void DebugJsonApi() 
        {
            TestJsonParseApi();
        }

    }

    class JsonUtils {
        // 對象轉為JSON字符串
        public static string ObjectToJsonString(Object obj)
        {
            string jsonStr = JsonConvert.SerializeObject(obj);
            return jsonStr;
        }

        // JSON字符串轉對象
        public static Object ObjectToJsonString(String jsonStr)
        {
            Object obj = JsonConvert.DeserializeObject<Object>(jsonStr);
            return obj;
        }
    }

    class Product {
        public string Name{get;set;}
        public DateTime Expiry;
        public string[] Sizes;
    }
}
View Code

 

WPF基礎

1.XAML命名空間

<Window x:Class="WpfApp.Library.Basic.Ba01XamlNamespace"
        
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        Title="Ba01XamlNamespace" Height="300" Width="300">
    <!-- 
        WPF命名空間 
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        XAML命名空間
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        系統名稱空間
            xmlns:sys="clr-namespace:System;assembly=mscorlib"
    -->
    <!-- 使用系統命名空間聲明一個數字字符串 -->
    <Window.Resources>
        <ResourceDictionary>
            <x:Array Type="sys:String" x:Key="localArray">
                <sys:String>"AAA"</sys:String>
                <sys:String>"BBB"</sys:String>
                <sys:String>"CCC"</sys:String>
            </x:Array>
        </ResourceDictionary>
    </Window.Resources>
    <Grid>
        
    </Grid>
</Window>
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM