2019-08-02 11:51:08 qq_41279626 阅读数 21
  • C#/.Net企业级系统架构设计实战精讲教程

    课程通过实际项目融入常用开发技术架构,讲授风格独特,提供详细上课日志及答疑,赠送配套的项目架构源码注释详细清晰且表达通俗,均能直接在实际项目中应用,正真的物超所值,价格实惠 任务作业: 综合运用《C#/.Net企业级系统架构设计实战精讲教程》课程所学知识技能设计一个学生成绩管理系统的架构。要求: 1.系统基于MVC的三层架构,各层单独建不同的解决方案文件夹。 2.采用Model First开发方式,设计架构时只需要设计学生表(TbStudent)和课程表(TbCourse)。学生表必须有的字段是ID、stuName、age;课程表必须有的字段是ID、courseName、content。 3.数据访问层采用Entity Framework或NHibernate来实现,必须封装对上述表的增删改查方法。 4.必须依赖接口编程,也就是必须要有数据访问层的接口层、业务逻辑层的接口层等接口层。层层之间必须减少依赖,可以通过简单工厂或抽象工厂。 5.至少采用简单工厂、抽象工厂、Spring.Net等技术中的2种来减少层与层之间的依赖等。 6.封装出DbSession类,让它拥有所有Dal层实例和SaveChanges方法。 7.设计出数据访问层及业务逻辑层主要类的T4模板,以便实体增加时自动生成相应的类。 8.表现层要设计相关的控制器和视图来验证设计的系统架构代码的正确性,必须含有验证增删改查的方法。 9.开发平台一定要是Visual Studio平台,采用C#开发语言,数据库为SQL Server。 10.提交整个系统架构的源文件及生成的数据库文件。 (注意: 作业需写在CSDN博客中,请把作业链接贴在评论区,老师会定期逐个批改~~)

    4581 人正在学习 去看看 徐照兴

学习单例模板类的链接
https://www.cnblogs.com/lovewaits/p/8127434.html

学unity一年多了,几乎不怎么写模板类,更不会在模板类里面写static,
今天学了一下单例模板类,才发现原来模板类里面的static成员是独立。
普通类作为基类,基类里面的静态成员被所有子类共享,
而模板类作为基类,其静态成员是独立的,所以才能诞生单例模板类这个方便又神奇的东西。

public class SonOne_Mono : Father_Mono<SonOne_Mono> {
    public string mName = "SonOne_Mono";
    private void Start() {
        F = 1;
    }
}

public class SonTwo_Mono : Father_Mono<SonTwo_Mono> {
    public string mName = "SonTwo_Mono"; 
    private void Start()
    {
        F = 2;
    }
}

在这里插入图片描述

2018-05-21 16:23:26 yye4520 阅读数 1044
  • C#/.Net企业级系统架构设计实战精讲教程

    课程通过实际项目融入常用开发技术架构,讲授风格独特,提供详细上课日志及答疑,赠送配套的项目架构源码注释详细清晰且表达通俗,均能直接在实际项目中应用,正真的物超所值,价格实惠 任务作业: 综合运用《C#/.Net企业级系统架构设计实战精讲教程》课程所学知识技能设计一个学生成绩管理系统的架构。要求: 1.系统基于MVC的三层架构,各层单独建不同的解决方案文件夹。 2.采用Model First开发方式,设计架构时只需要设计学生表(TbStudent)和课程表(TbCourse)。学生表必须有的字段是ID、stuName、age;课程表必须有的字段是ID、courseName、content。 3.数据访问层采用Entity Framework或NHibernate来实现,必须封装对上述表的增删改查方法。 4.必须依赖接口编程,也就是必须要有数据访问层的接口层、业务逻辑层的接口层等接口层。层层之间必须减少依赖,可以通过简单工厂或抽象工厂。 5.至少采用简单工厂、抽象工厂、Spring.Net等技术中的2种来减少层与层之间的依赖等。 6.封装出DbSession类,让它拥有所有Dal层实例和SaveChanges方法。 7.设计出数据访问层及业务逻辑层主要类的T4模板,以便实体增加时自动生成相应的类。 8.表现层要设计相关的控制器和视图来验证设计的系统架构代码的正确性,必须含有验证增删改查的方法。 9.开发平台一定要是Visual Studio平台,采用C#开发语言,数据库为SQL Server。 10.提交整个系统架构的源文件及生成的数据库文件。 (注意: 作业需写在CSDN博客中,请把作业链接贴在评论区,老师会定期逐个批改~~)

    4581 人正在学习 去看看 徐照兴

根据模板类,我们可以快速的创建一些我们想要的脚本内容,比如我们有接口要在子类上实现,就可以写一个对应的模板,每次创建脚本就会帮我自动实现接口,特别是在UI脚本上经常需要用到这个需求。

c#模板类

// **********************************************************************
// Copyright (C) XM
// Author: 吴肖牧
// Date: 2018-02-23
// Desc: 
// **********************************************************************
using UnityEngine;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using UnityEditor;
using UnityEditor.ProjectWindowCallback;

public class CreateScriptUtil:Editor {

    //EditorApplication.applicationContentsPath  Unity模版路径

    //该注释的方法无法处理模版内容,故不予以采用

    //public static void CreateScriptUtil(string path, string templete)
    //{
    //    MethodInfo method = typeof(ProjectWindowUtil).GetMethod("CreateScriptAsset",BindingFlags.Static | BindingFlags.NonPublic);
    //    if (method != null)
    //    {
    //        method.Invoke(null, new object[] { templete, path });
    //    }
    //}

    //[MenuItem("Assets/XM/UILua.lua", false, 1)]
    //static void CreateMyLua()
    //{
    //    CreateScriptUtil(@"UILua.lua", Application.dataPath + "/Scripts/CreateScriptUtil/ScriptTemplates/XM_Lua_UI.lua.txt");
    //}

    //[MenuItem("Assets/XM/XMCSharp.cs", false, 51)]
    //static void CreateMyCShap()
    //{
    //    CreateScriptUtil(@"XMCSharp.cs", Application.dataPath + "/Scripts/CreateScriptUtil/ScriptTemplates/XMCSharp.cs.txt");
    //}


    [MenuItem("Assets/Create/XM/Lua Script", false, 80)]
    public static void CreatNewLua()
    {
        ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0,
        ScriptableObject.CreateInstance<MyDoCreateScriptAsset>(),
        GetSelectedPathOrFallback() + "/NewLuaScript.lua",
        null,
       Application.dataPath + "/Scripts/ScriptTemplates/XM_Lua_UI.lua.txt");
    }

    [MenuItem("Assets/Create/XM/C# Script", false, 81)]
    public static void CreatNewCSharp()
    {
        ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0,
        ScriptableObject.CreateInstance<MyDoCreateScriptAsset>(),
        GetSelectedPathOrFallback() + "/NewBehaviourScript.cs",
        null,
       Application.dataPath + "/Scripts/ScriptTemplates/XMCSharp.cs.txt");
    }



    public static string GetSelectedPathOrFallback()
    {
        string path = "Assets";
        foreach (UnityEngine.Object obj in Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.Assets))
        {
            path = AssetDatabase.GetAssetPath(obj);
            if (!string.IsNullOrEmpty(path) && File.Exists(path))
            {
                path = Path.GetDirectoryName(path);
                break;
            }
        }
        return path;
    }
}


class MyDoCreateScriptAsset : EndNameEditAction
{
    public override void Action(int instanceId, string pathName, string resourceFile)
    {
        UnityEngine.Object o = CreateScriptAssetFromTemplate(pathName, resourceFile);
        ProjectWindowUtil.ShowCreatedAsset(o);
    }

    internal static UnityEngine.Object CreateScriptAssetFromTemplate(string pathName, string resourceFile)
    {
        string fullPath = Path.GetFullPath(pathName);
        StreamReader streamReader = new StreamReader(resourceFile);
        string text = streamReader.ReadToEnd();
        streamReader.Close();

        //TODO:脚本内容处理
        string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(pathName);
        text = Regex.Replace(text, "#SCRIPTNAME#", fileNameWithoutExtension);
        text = Regex.Replace(text, "#DATE#", System.DateTime.Now.ToString("yyyy-MM-dd"));

        bool encoderShouldEmitUTF8Identifier = true;
        bool throwOnInvalidBytes = false;
        UTF8Encoding encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier, throwOnInvalidBytes);
        bool append = false;
        StreamWriter streamWriter = new StreamWriter(fullPath, append, encoding);
        streamWriter.Write(text);
        streamWriter.Close();
        AssetDatabase.ImportAsset(pathName);
        return AssetDatabase.LoadAssetAtPath(pathName, typeof(UnityEngine.Object));
    }
}

c#模板

// **********************************************************************
// Copyright (C) XM
// Author: 吴肖牧
// Date: #DATE#
// Desc: 
// **********************************************************************
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class #SCRIPTNAME# : MonoBehaviour {

	void Start () {

	}
	
	void Update () {

	}
}

我们可以根据项目需求自行拓展模板。

2012-07-22 18:26:49 a125138 阅读数 2155
  • C#/.Net企业级系统架构设计实战精讲教程

    课程通过实际项目融入常用开发技术架构,讲授风格独特,提供详细上课日志及答疑,赠送配套的项目架构源码注释详细清晰且表达通俗,均能直接在实际项目中应用,正真的物超所值,价格实惠 任务作业: 综合运用《C#/.Net企业级系统架构设计实战精讲教程》课程所学知识技能设计一个学生成绩管理系统的架构。要求: 1.系统基于MVC的三层架构,各层单独建不同的解决方案文件夹。 2.采用Model First开发方式,设计架构时只需要设计学生表(TbStudent)和课程表(TbCourse)。学生表必须有的字段是ID、stuName、age;课程表必须有的字段是ID、courseName、content。 3.数据访问层采用Entity Framework或NHibernate来实现,必须封装对上述表的增删改查方法。 4.必须依赖接口编程,也就是必须要有数据访问层的接口层、业务逻辑层的接口层等接口层。层层之间必须减少依赖,可以通过简单工厂或抽象工厂。 5.至少采用简单工厂、抽象工厂、Spring.Net等技术中的2种来减少层与层之间的依赖等。 6.封装出DbSession类,让它拥有所有Dal层实例和SaveChanges方法。 7.设计出数据访问层及业务逻辑层主要类的T4模板,以便实体增加时自动生成相应的类。 8.表现层要设计相关的控制器和视图来验证设计的系统架构代码的正确性,必须含有验证增删改查的方法。 9.开发平台一定要是Visual Studio平台,采用C#开发语言,数据库为SQL Server。 10.提交整个系统架构的源文件及生成的数据库文件。 (注意: 作业需写在CSDN博客中,请把作业链接贴在评论区,老师会定期逐个批改~~)

    4581 人正在学习 去看看 徐照兴

1.打开安装目录下Class.zip所在的目录:
32位 C:\ProgramFiles\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Code\2052
64位 C:\ProgramFiles(x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Code\2052
 
2.打开Visual Studio 2010 命令提示【开始→所有程序→MicrosoftVisual Studio 2010→Visual Studio Tools→Visual Studio 命令提示(2010)】,
输入 “devenv/InstallVsTemplates”。
等待执行完毕


实例:
/****************************************************************** 
 * 创建人:XXX 
 * 时间:  $time$ 
 * 签名:   世界上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离;
 *         世界上最痴心的等待,是我当case你是switch,或许永远都选不上自己;
 *         世界上最真情的相依,是你在try我在catch。无论你发神马脾气,我都默默承受,静静处理。
 *         到那时,再来期待我们的finally
 * 博客:   http://blog.csdn.net/a125138 (CSDN)
 *         http://www.cnblogs.com/qy5201314/ (博客园)
 ******************************************************************/ 
using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
$endif$using System.Text;


namespace $rootnamespace$
{
	class $safeitemrootname$
	{
	}
}

新建一个类的效果图:


2011-12-12 21:46:13 qq1010726055 阅读数 4514
  • C#/.Net企业级系统架构设计实战精讲教程

    课程通过实际项目融入常用开发技术架构,讲授风格独特,提供详细上课日志及答疑,赠送配套的项目架构源码注释详细清晰且表达通俗,均能直接在实际项目中应用,正真的物超所值,价格实惠 任务作业: 综合运用《C#/.Net企业级系统架构设计实战精讲教程》课程所学知识技能设计一个学生成绩管理系统的架构。要求: 1.系统基于MVC的三层架构,各层单独建不同的解决方案文件夹。 2.采用Model First开发方式,设计架构时只需要设计学生表(TbStudent)和课程表(TbCourse)。学生表必须有的字段是ID、stuName、age;课程表必须有的字段是ID、courseName、content。 3.数据访问层采用Entity Framework或NHibernate来实现,必须封装对上述表的增删改查方法。 4.必须依赖接口编程,也就是必须要有数据访问层的接口层、业务逻辑层的接口层等接口层。层层之间必须减少依赖,可以通过简单工厂或抽象工厂。 5.至少采用简单工厂、抽象工厂、Spring.Net等技术中的2种来减少层与层之间的依赖等。 6.封装出DbSession类,让它拥有所有Dal层实例和SaveChanges方法。 7.设计出数据访问层及业务逻辑层主要类的T4模板,以便实体增加时自动生成相应的类。 8.表现层要设计相关的控制器和视图来验证设计的系统架构代码的正确性,必须含有验证增删改查的方法。 9.开发平台一定要是Visual Studio平台,采用C#开发语言,数据库为SQL Server。 10.提交整个系统架构的源文件及生成的数据库文件。 (注意: 作业需写在CSDN博客中,请把作业链接贴在评论区,老师会定期逐个批改~~)

    4581 人正在学习 去看看 徐照兴

1.找到D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Code\2052下Class.zip。这是类模板。

 

D:为visual2010的的安装盘。

 

解压Class.zip 压缩文件。修改当中的2个文件。有些变量,请参考微软官方网站。

 

 

2./* ***********************************************
 * author :  $username$
 * email  :  1010726055@qq.com 
 * function:
 * history:  created by $username$ $time$
 * ***********************************************/
修改好后打包回去覆盖原来的Class.zip,然后在visual studuo的命运行下运行 devenv /setup就可以使用了。

直接在[InstallDirectory]:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache\CSharp\Web\1033这个文件夹下面改就好了。上面说的一大堆.zip文件多解压在这里了。这样我们直接更改[InstallDirectory]:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache\CSharp\Web\1033\WebClass.zip 里面的Class.cs文件。

/******************************************************
* author :  $username$
* email  :  1010726055@qq.com
* function:
* history:  created by $username$ $time$
* clrversion :$clrversion$
******************************************************/

在模板中我们可以使用“保留的模板参数”,亦可以使用自定义模板参数。
保留的模板参数有如下13个,其中GUID又可以变化出十个参数(模板参数区分大小写):
    clrversion  公共语言运行库 (CLR) 的当前版本。
    GUID [1-10]  用于替换项目文件中的项目 GUID 的 GUID。最多可以指定 10 个唯一的 GUID(例如,guid1))。
    itemname  用户在添加新项对话框中提供的名称。
    machinename  当前的计算机名称(例如,Computer01)。
    projectname  用户在新建项目对话框中提供的名称。
    registeredorganization  HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization 中的注册表项值。
    rootnamespace  当前项目的根命名空间。此参数用于替换正向项目中添加的项中的命名空间。
    safeitemname  用户在“添加新项”对话框中提供的名称,名称中移除了所有不安全的字符和空格。
    safeprojectname  用户在“新建项目”对话框中提供的名称,名称中移除了所有不安全的字符和空格。
    time  以 DD/MM/YYYY 00:00:00 格式表示的当前时间。
    userdomain  当前的用户域。
    username  当前的用户名。
    year  以 YYYY 格式表示的当前年份。
自定义模板参数:
    下面的示例演示如何在一个模板中使用多个自定义参数。如果项目或项是使用下面的自定义参数从某个模板创建而成,则将模板文件中 $color1$ 和 $color2$ 的所有实例分别替换为 Red 和 Blue。
    <CustomParameters>
        <CustomParameter Name="$color1$" Value="Red"/>
        <CustomParameter Name="$color2$" Value="Blue "/>
    </CustomParameters>

3.其它可用的参数:
    在.cs页面使用的模板参数:
    namespace $safeprojectname$
    public partial class $classname$ 或者
    public partial class $safeitemrootname$
    在.aspx页面使用的模板参数:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="$fileinputname$.aspx.cs" Inherits="$rootnamespace$.$classname$" CodePage="936"%>
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InfoEdit.aspx.cs" Inherits="Examples.TableOp.InfoEdit" CodePage="936"%>
    在.vstemplate中使用的模板参数:
    <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.$fileinputextension$">Default.aspx</ProjectItem>

 

 

4.改变后,新建类的时候还不能立即应用。得到visual studio 命令提示符下,输入devenv/setup回车。可能需要1,2分钟。这样你的类模板设置就可以了。(最重要的一部)

 

2008-06-15 16:57:00 dj1232090 阅读数 2318
  • C#/.Net企业级系统架构设计实战精讲教程

    课程通过实际项目融入常用开发技术架构,讲授风格独特,提供详细上课日志及答疑,赠送配套的项目架构源码注释详细清晰且表达通俗,均能直接在实际项目中应用,正真的物超所值,价格实惠 任务作业: 综合运用《C#/.Net企业级系统架构设计实战精讲教程》课程所学知识技能设计一个学生成绩管理系统的架构。要求: 1.系统基于MVC的三层架构,各层单独建不同的解决方案文件夹。 2.采用Model First开发方式,设计架构时只需要设计学生表(TbStudent)和课程表(TbCourse)。学生表必须有的字段是ID、stuName、age;课程表必须有的字段是ID、courseName、content。 3.数据访问层采用Entity Framework或NHibernate来实现,必须封装对上述表的增删改查方法。 4.必须依赖接口编程,也就是必须要有数据访问层的接口层、业务逻辑层的接口层等接口层。层层之间必须减少依赖,可以通过简单工厂或抽象工厂。 5.至少采用简单工厂、抽象工厂、Spring.Net等技术中的2种来减少层与层之间的依赖等。 6.封装出DbSession类,让它拥有所有Dal层实例和SaveChanges方法。 7.设计出数据访问层及业务逻辑层主要类的T4模板,以便实体增加时自动生成相应的类。 8.表现层要设计相关的控制器和视图来验证设计的系统架构代码的正确性,必须含有验证增删改查的方法。 9.开发平台一定要是Visual Studio平台,采用C#开发语言,数据库为SQL Server。 10.提交整个系统架构的源文件及生成的数据库文件。 (注意: 作业需写在CSDN博客中,请把作业链接贴在评论区,老师会定期逐个批改~~)

    4581 人正在学习 去看看 徐照兴
在编程过程中,经常会遇到这种情况。有些对象需要从磁盘文件或数据库中读取数据,如果每次用过就将对象丢掉,下次再重新读磁盘,会影响程序的效率而且造成浪费。一个比较好的选择是使用缓冲池,下面的代码是我在编写股票程序时所写的一个缓冲池代码,因为考虑到会用的比较广泛,我花时间将它写成了通用的模板类。现在提供出来,如果有需要,你可以直接使用。 下面是缓冲池的代码:



 



view plaincopy to clipboardprint?

using System;   

  

  

  

namespace Wuzhiqiang   

  

{   

  

    interface IKnowByKey<T>   

  

    {   

  

        bool ThatIsMe(T key);   

  

    }   

  

  

  

    // 可缓冲的元素必须是类,引用类型,必须遵从接口   

  

    class PoolManagerGeneric<T,U>  where T: class, IKnowByKey<U>   

  

    {  

 

        #region Variable...   

  

        private int __length = 10;    

  

        private int __count = 0;   

  

        T[] __objectPool = null;  

 

 

 

        #endregion  

 

 

 

        #region Properties...   

  

  

  

        public int Length   

  

        {   

  

            get { return __length; }   

  

        }  

 

 

 

        #endregion  

 

 

 

        #region Construct ...   

  

        public PoolManagerGeneric()   

  

        {   

  

            init();   

  

        }   

  

  

  

        public PoolManagerGeneric(int max)   

  

        {   

  

            if (max >= 5 && max <= 1000)   

  

                __length = max;   

  

  

  

            init();   

  

        }  

 

        #endregion  

 

 

 

        #region Functions ...   

  

        private void init()   

  

        {   

  

            __objectPool = new T[__length];   

  

            __count = 0;   

  

        }   

  

  

  

        public void SaveObject(T obj)   

  

        {   

  

            if (__count >= __length)   

  

                __count = 0;   

  

  

  

            __objectPool[__count++] = obj;   

  

        }   

  

  

  

        public T GetObjectByKey( U key )   

  

        {   

  

            for(int i= 0; i< __length; i++ )   

  

            {   

  

                if( __objectPool[i] != null && __objectPool[i].ThatIsMe(key))   

  

                    return __objectPool[i];   

  

            }   

  

            return null;   

  

        }  

 

 

 

        #endregion   

  

    }   

  

}  



using System;







namespace Wuzhiqiang



{



    interface IKnowByKey<T>



    {



        bool ThatIsMe(T key);



    }







    // 可缓冲的元素必须是类,引用类型,必须遵从接口



    class PoolManagerGeneric<T,U>  where T: class, IKnowByKey<U>



    {



        #region Variable...



        private int __length = 10; 



        private int __count = 0;



        T[] __objectPool = null;







        #endregion







        #region Properties...







        public int Length



        {



            get { return __length; }



        }







        #endregion







        #region Construct ...



        public PoolManagerGeneric()



        {



            init();



        }







        public PoolManagerGeneric(int max)



        {



            if (max >= 5 && max <= 1000)



                __length = max;







            init();



        }



        #endregion







        #region Functions ...



        private void init()



        {



            __objectPool = new T[__length];



            __count = 0;



        }







        public void SaveObject(T obj)



        {



            if (__count >= __length)



                __count = 0;







            __objectPool[__count++] = obj;



        }







        public T GetObjectByKey( U key )



        {



            for(int i= 0; i< __length; i++ )



            {



                if( __objectPool[i] != null && __objectPool[i].ThatIsMe(key))



                    return __objectPool[i];



            }



            return null;



        }







        #endregion



    }



} view plaincopy to clipboardprint?

========================================================================  



========================================================================view plaincopy to clipboardprint?

这个缓冲是使用的是C#对象数组,当然针对的是引用对象,值对象无法使用。为了方便大家使用,下面我再给出  



这个缓冲是使用的是C#对象数组,当然针对的是引用对象,值对象无法使用。为了方便大家使用,下面我再给出view plaincopy to clipboardprint?

具体使用的例子。  



具体使用的例子。view plaincopy to clipboardprint?

using System;   

using System.Collections.Generic;   

using System.ComponentModel;   

using System.Data;   

using System.Drawing;   

using System.Linq;   

using System.Text;   

using System.Windows.Forms;  



using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;view plaincopy to clipboardprint?

namespace TestPoolMamaner   

{   

    public partial class Form1 : Form   

    {   

        KLine currentkline = null;  



namespace TestPoolMamaner

{

    public partial class Form1 : Form

    {

        KLine currentkline = null;view plaincopy to clipboardprint?

        Wuzhiqiang.PoolManagerGeneric<KLine, String> klPoolManager =   

            new Wuzhiqiang.PoolManagerGeneric<KLine, String>(20);  



        Wuzhiqiang.PoolManagerGeneric<KLine, String> klPoolManager =

            new Wuzhiqiang.PoolManagerGeneric<KLine, String>(20);view plaincopy to clipboardprint?

        public Form1()   

        {   

            InitializeComponent();   

        }  



        public Form1()

        {

            InitializeComponent();

        }view plaincopy to clipboardprint?

   



 view plaincopy to clipboardprint?

        /// <summary>   

        /// 必需的设计器变量。   

        /// </summary>   

        private System.ComponentModel.IContainer components = null;  



        /// <summary>

        /// 必需的设计器变量。

        /// </summary>

        private System.ComponentModel.IContainer components = null;view plaincopy to clipboardprint?

        /// <summary>   

        /// 清理所有正在使用的资源。   

        /// </summary>   

        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>   

        protected override void Dispose(bool disposing)   

        {   

            if (disposing && (components != null))   

            {   

                components.Dispose();   

            }   

            base.Dispose(disposing);   

        }  



        /// <summary>

        /// 清理所有正在使用的资源。

        /// </summary>

        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>

        protected override void Dispose(bool disposing)

        {

            if (disposing && (components != null))

            {

                components.Dispose();

            }

            base.Dispose(disposing);

        }view plaincopy to clipboardprint?

        #region Windows 窗体设计器生成的代码  



        #region Windows 窗体设计器生成的代码view plaincopy to clipboardprint?

        /// <summary>   

        /// 设计器支持所需的方法 - 不要   

        /// 使用代码编辑器修改此方法的内容。   

        /// </summary>   

        private void InitializeComponent()   

        {   

            this.button1 = new System.Windows.Forms.Button();   

            this.textBox1 = new System.Windows.Forms.TextBox();   

            this.label1 = new System.Windows.Forms.Label();   

            this.label2 = new System.Windows.Forms.Label();   

            this.SuspendLayout();   

            //    

            // button1   

            //    

            this.button1.Location = new System.Drawing.Point(280, 15);   

            this.button1.Name = "button1";   

            this.button1.Size = new System.Drawing.Size(75, 23);   

            this.button1.TabIndex = 0;   

            this.button1.Text = "test";   

            this.button1.UseVisualStyleBackColor = true;   

            this.button1.Click += new System.EventHandler(this.button1_Click);   

            //    

            // textBox1   

            //    

            this.textBox1.Location = new System.Drawing.Point(104, 12);   

            this.textBox1.Name = "textBox1";   

            this.textBox1.Size = new System.Drawing.Size(100, 21);   

            this.textBox1.TabIndex = 1;   

            this.textBox1.Text = "123456";   

            //    

            // label1   

            //    

            this.label1.AutoSize = true;   

            this.label1.Location = new System.Drawing.Point(21, 15);   

            this.label1.Name = "label1";   

            this.label1.Size = new System.Drawing.Size(77, 12);   

            this.label1.TabIndex = 2;   

            this.label1.Text = "Code String:";   

            //    

            // label2   

            //    

            this.label2.AutoSize = true;   

            this.label2.Location = new System.Drawing.Point(21, 115);   

            this.label2.Name = "label2";   

            this.label2.Size = new System.Drawing.Size(377, 12);   

            this.label2.TabIndex = 3;   

            this.label2.Text = "change code and click test, if code is repeat pool is working.";   

            //    

            // Form1   

            //    

            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);   

            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;   

            this.ClientSize = new System.Drawing.Size(437, 146);   

            this.Controls.Add(this.label2);   

            this.Controls.Add(this.label1);   

            this.Controls.Add(this.textBox1);   

            this.Controls.Add(this.button1);   

            this.Name = "Form1";   

            this.Text = "Form1";   

            this.ResumeLayout(false);   

            this.PerformLayout();  



        /// <summary>

        /// 设计器支持所需的方法 - 不要

        /// 使用代码编辑器修改此方法的内容。

        /// </summary>

        private void InitializeComponent()

        {

            this.button1 = new System.Windows.Forms.Button();

            this.textBox1 = new System.Windows.Forms.TextBox();

            this.label1 = new System.Windows.Forms.Label();

            this.label2 = new System.Windows.Forms.Label();

            this.SuspendLayout();

            // 

            // button1

            // 

            this.button1.Location = new System.Drawing.Point(280, 15);

            this.button1.Name = "button1";

            this.button1.Size = new System.Drawing.Size(75, 23);

            this.button1.TabIndex = 0;

            this.button1.Text = "test";

            this.button1.UseVisualStyleBackColor = true;

            this.button1.Click += new System.EventHandler(this.button1_Click);

            // 

            // textBox1

            // 

            this.textBox1.Location = new System.Drawing.Point(104, 12);

            this.textBox1.Name = "textBox1";

            this.textBox1.Size = new System.Drawing.Size(100, 21);

            this.textBox1.TabIndex = 1;

            this.textBox1.Text = "123456";

            // 

            // label1

            // 

            this.label1.AutoSize = true;

            this.label1.Location = new System.Drawing.Point(21, 15);

            this.label1.Name = "label1";

            this.label1.Size = new System.Drawing.Size(77, 12);

            this.label1.TabIndex = 2;

            this.label1.Text = "Code String:";

            // 

            // label2

            // 

            this.label2.AutoSize = true;

            this.label2.Location = new System.Drawing.Point(21, 115);

            this.label2.Name = "label2";

            this.label2.Size = new System.Drawing.Size(377, 12);

            this.label2.TabIndex = 3;

            this.label2.Text = "change code and click test, if code is repeat pool is working.";

            // 

            // Form1

            // 

            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);

            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

            this.ClientSize = new System.Drawing.Size(437, 146);

            this.Controls.Add(this.label2);

            this.Controls.Add(this.label1);

            this.Controls.Add(this.textBox1);

            this.Controls.Add(this.button1);

            this.Name = "Form1";

            this.Text = "Form1";

            this.ResumeLayout(false);

            this.PerformLayout();view plaincopy to clipboardprint?

        }  



        }view plaincopy to clipboardprint?

        #endregion  



        #endregionview plaincopy to clipboardprint?

        private System.Windows.Forms.Button button1;   

        private System.Windows.Forms.TextBox textBox1;   

        private System.Windows.Forms.Label label1;   

        private System.Windows.Forms.Label label2;  



        private System.Windows.Forms.Button button1;

        private System.Windows.Forms.TextBox textBox1;

        private System.Windows.Forms.Label label1;

        private System.Windows.Forms.Label label2;view plaincopy to clipboardprint?

        private KLine LoadKLineData(String path, String code, String name, String city)   

        {   

            KLine temp = klPoolManager.GetObjectByKey(code);   

            if (temp == null)   

            {   

                temp = new KLine();   

                temp.Load(path, code, name, city);   

                klPoolManager.SaveObject(temp);   

            }   

            return temp;   

        }  



        private KLine LoadKLineData(String path, String code, String name, String city)

        {

            KLine temp = klPoolManager.GetObjectByKey(code);

            if (temp == null)

            {

                temp = new KLine();

                temp.Load(path, code, name, city);

                klPoolManager.SaveObject(temp);

            }

            return temp;

        }view plaincopy to clipboardprint?

        private void button1_Click(object sender, EventArgs e)   

        {   

            KLine find = klPoolManager.GetObjectByKey( this.textBox1.Text);   

            if (find != null)   

            {   

                MessageBox.Show(" the object get from pool!");    

            }  



        private void button1_Click(object sender, EventArgs e)

        {

            KLine find = klPoolManager.GetObjectByKey( this.textBox1.Text);

            if (find != null)

            {

                MessageBox.Show(" the object get from pool!"); 

            }view plaincopy to clipboardprint?

            currentkline = LoadKLineData( "", this.textBox1.Text, "name", "");       

       

            // user   

        }   

    }  



            currentkline = LoadKLineData( "", this.textBox1.Text, "name", "");    

    

            // user

        }

    }view plaincopy to clipboardprint?

   



 view plaincopy to clipboardprint?

   static class Program   

    {   

        /// <summary>   

        /// 应用程序的主入口点。   

        /// </summary>   

        [STAThread]   

        static void Main()   

        {   

            Application.EnableVisualStyles();   

            Application.SetCompatibleTextRenderingDefault(false);   

            Application.Run(new Form1());   

        }   

    }  



   static class Program

    {

        /// <summary>

        /// 应用程序的主入口点。

        /// </summary>

        [STAThread]

        static void Main()

        {

            Application.EnableVisualStyles();

            Application.SetCompatibleTextRenderingDefault(false);

            Application.Run(new Form1());

        }

    }view plaincopy to clipboardprint?

   public class KLine : Wuzhiqiang.IKnowByKey<String>   

    {   

        private String __stockCode;   

        private String __stockName;  



   public class KLine : Wuzhiqiang.IKnowByKey<String>

    {

        private String __stockCode;

        private String __stockName;view plaincopy to clipboardprint?

        // ...............  



        // ...............view plaincopy to clipboardprint?

        public bool ThatIsMe(String key)   

        {   

            return __stockCode == key;   

        }  



        public bool ThatIsMe(String key)

        {

            return __stockCode == key;

        }view plaincopy to clipboardprint?

        public String StockCode   

        {   

            get { return __stockCode; }   

        }  



        public String StockCode

        {

            get { return __stockCode; }

        }view plaincopy to clipboardprint?

        public String StockName   

        {   

            get { return __stockName; }   

        }  



        public String StockName

        {

            get { return __stockName; }

        }view plaincopy to clipboardprint?

        public void Load(String path, String code, String name, String city)   

        {   

            __stockCode = code;   

            __stockName = name;   

            // .................   

        }   

    }    

}  



        public void Load(String path, String code, String name, String city)

        {

            __stockCode = code;

            __stockName = name;

            // .................

        }

    } 

}

view plaincopy to clipboardprint?

// 工作愉快  

C#抽象类总结

阅读数 1567

没有更多推荐了,返回首页