TextBox 控件的扩展, Help!!!

honghuali 2008-12-12 01:23:46
扩展功能(WEB项目中):
1.新增下拉功能, 下拉显示的数据从数据库中读取,

2.TextBox里的文本, 即可以自己输入, 也可以从下拉选择。

望有经验的朋友, 给点思路, 最好有实例。


多谢!
...全文
190 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wb186 2008-12-12
  • 打赏
  • 举报
回复
呵呵 楼主肯定知道combobox滴!所以……
5楼很强
wengjj1985 2008-12-12
  • 打赏
  • 举报
回复
combobox
c11_11_11 2008-12-12
  • 打赏
  • 举报
回复

/**/
/// <summary>
/// 根据设置的验证数据类型返回不同的正则表达式样
/// </summary>
/// <returns></returns>
#region GetRegex
private string GetValidRegex()
{
string regex = @"(\S)";
switch (this.ValidType)
{
case DataType.Never:
break;
case DataType.Int:
error = "*必须为整数";
regex = @"(-)?(\d+)";
break;
case DataType.IntPostive:
error = "*必须为大于0的整数";
regex = @"([1-9]{1}\d*)";
break;
case DataType.IntZeroPostive:
error = "*必须为不小于0的整数";
regex = @"(\d+)";
break;
case DataType.Float:
error = "*必须为数字";
regex = @"(-)?(\d+)(((\.)(\d)+))?";
break;
case DataType.FloatPostive:
error = "*必须为大于0的数字";
regex = @"(\d+)(((\.)(\d)+))?";
break;
case DataType.FloatZeroPostive:
error = "*必须为不小于0的数字";
regex = @"(\d+)(((\.)(\d)+))?";
break;
case DataType.Url:
error = "*URL格式错误";
regex = @"(http://)?([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
break;
case DataType.Mail:
error = "*EMail格式错误";
regex = @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
break;
case DataType.ChineseChars:
error = "*只能输入中文字符";
regex = @"[\u4e00-\u9fa5]*";
break;
case DataType.EnglishChars:
error = "*只能输入英文字符";
regex = @"[a-zA-Z]*";
break;
case DataType.EngNum:
error = "*只能输入英文字符和数字";
regex = @"[a-zA-Z0-9]*";
break;
case DataType.EngNumUnerline:
error = "*只能输入英文字符、数字和下划线";
regex = @"[a-zA-Z0-9_]*";
break;
case DataType.PhoneNumber:
error = "*电话号码格式错误";
regex = @"\d{3,4}-\d{7,8}(-\d{1,4})?";
//regex = @"(0\d{2,3})?(-)?(\d{7,8})(-)?(\d{1,5})?";
break;
case DataType.MobileNumber:
error = "*手机号码格式错误";
regex = @"(0)?(1)\d{10}";
break;
case DataType.PostalCode:
error = "*邮编格式错误";
regex = @"\d{6}";
break;
case DataType.Date:
error = "*日期格式错误(YYYY-MM-DD)";
regex = @"^(((((0[48]00)|(0[1-9]((0[48])|([2468][048])|([13579][26]))))-02-29)|((0[1-9][0-9][0-9])-((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30))|(((0[1-9])|(1[0-2]))-((0[1-9])|(1[0-9])|(2[0-8])))))))|((((((([13579][26])|([2468][048]))00)|([1-9][0-9]((0[48])|([13579][26])|([2468][048]))))-02-29)|(([1-9][0-9][0-9][0-9])-((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30))|(((0[1-9])|(1[0-2]))-((0[1-9])|(1[0-9])|(2[0-8])))))))|((((00((0[48])|([2468][048])|([13579][26])))-02-29)|((00((0[1-9])|([1-9][0-9])))-((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30))|(((0[1-9])|(1[0-2]))-((0[1-9])|(1[0-9])|(2[0-8])))))))$";
break;
case DataType.IdentityCode:
error = "*身份证号码格式错误";
regex = @"\d{18}";
break;
case DataType.QQ:
error = "*QQ号码格式错误";
regex = @"[1-9][0-9]{4,}";
break;
case DataType.IP:
error = "*IP地址格式错误";
regex = @"\d+\.\d+\.\d+\.\d+";
break;
case DataType.Custom:
error = "*格式错误";
regex = this.ValidExpressionCustom;
break;
default:
break;
}
if (this.ValidError.Trim() != "")
error = this.ValidError;
return regex;
}
#endregion

#region 将此控件呈现给指定的输出参数
/**/
/// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>
protected override void Render(HtmlTextWriter output)
{
base.Render(output);
output.Write(" ");


// base.
if (!this.AllowEmpty)
{
this.rfvDataInput.ID = "rfv" + base.ID;
this.rfvDataInput.ControlToValidate = base.ID;
//output.
//this.Attributes.Add("onfocus", "WdatePicker({isShowWeek:true})");
this.rfvDataInput.RenderControl(output);
}

if (this.ValidType != DataType.Never && this.ValidType != DataType.String)
{
this.revDataInput.ID = "rev" + base.ID;
this.revDataInput.ControlToValidate = base.ID;
this.revDataInput.ValidationExpression = this.GetValidRegex();
this.revDataInput.ErrorMessage = error;
// this.Attributes.Add("onfocus", "WdatePicker({isShowWeek:true})");
this.revDataInput.RenderControl(output);
}
//output.WriteAttribute
}
#endregion

}
}
c11_11_11 2008-12-12
  • 打赏
  • 举报
回复
[Category("自定义信息区")]
[DefaultValue("false"), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的字体删除线"), NotifyParentProperty(true)]
public bool ValidateFontStrikeout
{
get
{

if (ViewState["ValidateFontStrikeout"] != null)
return (bool)ViewState["ValidateFontStrikeout"];
return false;
}
set { ViewState["ValidateFontStrikeout"] = value; }
}
[Category("自定义信息区")]
[DefaultValue(""), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的CSSClass属性"), NotifyParentProperty(true)]
public string ValidateCSSClass
{
get
{

if (ViewState["ValidateCSSClass"] != null)
return ViewState["ValidateCSSClass"].ToString();
return string.Empty;
}
set { ViewState["ValidateCSSClass"] = value; }
}
[Category("自定义信息区")]
[DefaultValue("false"), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的字体下划线"), NotifyParentProperty(true)]
public bool ValidateFontUnderline
{
get
{

if (ViewState["ValidateFontUnderline"] != null)
return (bool)ViewState["ValidateFontUnderline"];
return false;
}
set { ViewState["ValidateFontUnderline"] = value; }
}
[Category("自定义信息区"), DefaultValue(""), Description("验证控件的字体名")]
[Editor("System.Drawing.Design.FontNameEditor, System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor)), TypeConverter(typeof(FontConverter.FontNameConverter))]
public string ValidateFontName
{
get
{
if (ViewState["ValidateFontName"] != null)
return (string)ViewState["ValidateFontName"];
return string.Empty;
}
set
{
ViewState["ValidateFontName"] = value;
}
}

#endregion

#region 构造函数
public xxxTextBox() { }
#endregion

#region 重写子控件
protected override void EnsureChildControls()
{
this.rfvDataInput.CssClass = this.CssError;
this.rfvDataInput.ErrorMessage = "*输入不能为空";
this.rfvDataInput.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic;
this.rfvDataInput.EnableViewState = true;
this.rfvDataInput.ControlToValidate = base.ID;
this.rfvDataInput.ForeColor = ValidateForeColor;

this.rfvDataInput.BackColor = ValidateBackColor;
if (ValidateFontSize != null)
{
this.rfvDataInput.Font.Size = ValidateFontSize;
}

this.rfvDataInput.Font.Bold = ValidateFontBold;
this.rfvDataInput.Font.Italic = ValidateFontItalic;
this.rfvDataInput.Font.Strikeout = ValidateFontStrikeout;
this.rfvDataInput.Font.Overline = ValidateFontOverLine;
this.rfvDataInput.Font.Underline = ValidateFontUnderline;
if (!string.IsNullOrEmpty(ValidateFontName))
this.rfvDataInput.Font.Name = ValidateFontName;
if (!string.IsNullOrEmpty(ValidateCSSClass))
this.rfvDataInput.CssClass = ValidateCSSClass;

this.revDataInput.CssClass = this.CssError;
this.revDataInput.ErrorMessage = "*输入格式错误";
this.revDataInput.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic;
this.revDataInput.EnableViewState = true;
this.revDataInput.ControlToValidate = base.ID;
this.revDataInput.ForeColor = ValidateForeColor;

this.revDataInput.BackColor = ValidateBackColor;
if (ValidateFontSize != null)
{
this.revDataInput.Font.Size = ValidateFontSize;
}
this.revDataInput.Font.Bold = ValidateFontBold;
this.revDataInput.Font.Bold = ValidateFontBold;
this.revDataInput.Font.Italic = ValidateFontItalic;
this.revDataInput.Font.Strikeout = ValidateFontStrikeout;
this.revDataInput.Font.Overline = ValidateFontOverLine;
this.revDataInput.Font.Underline = ValidateFontUnderline;
if (!string.IsNullOrEmpty(ValidateFontName))
this.revDataInput.Font.Name = ValidateFontName;
if (!string.IsNullOrEmpty(ValidateCSSClass))
this.revDataInput.CssClass = ValidateCSSClass;

//将子控件添加到此自定义控件中
this.Controls.Add(rfvDataInput);
this.Controls.Add(revDataInput);

this.Controls.Add(pnlFrame);
if (this.ValidType == DataType.Date)
this.Attributes.Add("onfocus", "WdatePicker({isShowClear:false,readOnly:true})");
}
#endregion
c11_11_11 2008-12-12
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Drawing.Design;

namespace xxx.Web.Control.xxxTextBox
{
/**/
/// <summary>
/// author rual by 2008-8-10
/// 重写的TextBox控件
/// <summary>
#region 枚举数据

/**/
/// <summary>
/// 验证数据类型
/// </summary>
public enum DataType
{
Never, //不验证
String, //字符串
Int, //整数
IntPostive, //大于0的整数
IntZeroPostive, //大于等于0的整数
Float, //数字
FloatPostive, //大于0的数字
FloatZeroPostive, //大于等于0的数字
Url,//URL 验证
Mail,//邮件验证
Date, //日期
ChineseChars, //汉字字符串
EnglishChars, //英文
EngNum, //英文和数字
EngNumUnerline, //英文、数字和下划线
PhoneNumber, //电话号码
MobileNumber, //手机号码
PostalCode, //邮政编码
QQ, //QQ号码
IdentityCode, //身份证号码
IP, //IP地址
Custom//自定义验证
}
#endregion

/**/
/// Attribute DefaultProperty指定组件的默认属性,ToolboxData指定当从IDE工具中的工具箱中拖动自定义控件时为它生成的默认标记
[DefaultProperty("AllowEmpty"), ToolboxData("<{0}:xxxTextBox runat=server></{0}:xxxTextBox>")]

public class xxxTextBox : System.Web.UI.WebControls.TextBox
{
#region 子控件
//private System.Web.UI.WebControls.TextBox txtDataInput = new TextBox();
private System.Web.UI.WebControls.RequiredFieldValidator rfvDataInput = new RequiredFieldValidator();
private System.Web.UI.WebControls.RegularExpressionValidator revDataInput = new RegularExpressionValidator();
private Panel pnlFrame = new Panel(); //承载其它控件的容器Panel控件
#endregion

private string error = "";

#region 控件自定义属性

[Bindable(true)]
[Category("自定义信息区")]
[Browsable(true)]
[Description("是否允许空值")]
[DefaultValue("true")]
public bool AllowEmpty
{
get { return ViewState["AllowEmpty"] == null ? true : (bool)ViewState["AllowEmpty"]; }
set { ViewState["AllowEmpty"] = value; }
}

[Bindable(true)]
[Category("自定义信息区")]
[Browsable(true)]
[Description("验证数据类型,默认为不验证")]
[DefaultValue("IntPostive")]
public DataType ValidType
{
get { return ViewState["ValidType"] == null ? DataType.Never : (DataType)ViewState["ValidType"]; }
set { ViewState["ValidType"] = value; }
}

[Bindable(true)]
[Browsable(true)]
[Category("自定义信息区")]
[Description("自定义验证错误信息")]
[DefaultValue("")]
public string ValidError
{
get { return ViewState["ValidError"] == null ? "" : (string)ViewState["ValidError"]; }
set { ViewState["ValidError"] = value; }
}

[Bindable(true)]
[Browsable(true)]
[Category("自定义信息区")]
[Description("自定义用于验证的正则表达式,ValidType 为 Custom 时有效")]
[DefaultValue("")]
public string ValidExpressionCustom
{
get { return ViewState["ValidExpressionCustom"] == null ? "" : (string)ViewState["ValidExpressionCustom"]; }
set { ViewState["ValidExpressionCustom"] = value; }
}

[Bindable(true)]
[Browsable(true)]
[Category("自定义信息区")]
[Description("错误信息提示的CSS类名")]
[DefaultValue("")]
public string CssError
{
get { return ViewState["CssError"] == null ? "" : (string)ViewState["CssError"]; }
set { ViewState["CssError"] = value; }
}

[Bindable(true)]
[Browsable(true)]
[Category("自定义信息区")]
[Description("验证控件的前景色")]
[DefaultValue("")]
public Color ValidateForeColor
{
get
{
if (ViewState["ValidateForeColor"] == null)
return Color.Red;
return (Color)ViewState["ValidateForeColor"];
}
set { ViewState["ValidateForeColor"] = value; }
}

[Bindable(true)]
[Browsable(true)]
[Category("自定义信息区")]
[Description("验证控件的背景色")]
[DefaultValue("")]
public Color ValidateBackColor
{
get
{
if (ViewState["ValidateBackColor"] == null)
return Color.Transparent;
return (Color)ViewState["ValidateBackColor"];
}
set { ViewState["ValidateBackColor"] = value; }
}

[Category("自定义信息区")]
[DefaultValue(""), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的字体大小"), NotifyParentProperty(true)]
public FontUnit ValidateFontSize
{
get
{

if (ViewState["ValidateFontSize"] != null)
return (FontUnit)ViewState["ValidateFontSize"];
return FontUnit.Point(10);
}
set { ViewState["ValidateFontSize"] = value; }
}

[Category("自定义信息区")]
[DefaultValue("false"), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的字体加粗"), NotifyParentProperty(true)]
public bool ValidateFontBold
{
get
{

if (ViewState["ValidateFontBold"] != null)
return (bool)ViewState["ValidateFontBold"];
return false;
}
set { ViewState["ValidateFontBold"] = value; }
}

[Category("自定义信息区")]
[DefaultValue("false"), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的字体斜体"), NotifyParentProperty(true)]
public bool ValidateFontItalic
{
get
{

if (ViewState["ValidateFontItalic"] != null)
return (bool)ViewState["ValidateFontItalic"];
return false;
}
set { ViewState["ValidateFontItalic"] = value; }
}

[Category("自定义信息区")]
[DefaultValue("false"), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的字体上划线"), NotifyParentProperty(true)]
public bool ValidateFontOverLine
{
get
{

if (ViewState["ValidateFontOverLine"] != null)
return (bool)ViewState["ValidateFontOverLine"];
return false;
}
set { ViewState["ValidateFontOverLine"] = value; }
}

c11_11_11 2008-12-12
  • 打赏
  • 举报
回复
请试用ajaxtoolkit 中的autocomplete 控件
wuyq11 2008-12-12
  • 打赏
  • 举报
回复
重写textbox属性和事件
参考
http://www.cnblogs.com/honliv/articles/809353.html
http://www.cnblogs.com/admin11/articles/1259577.html
colincat2004 2008-12-12
  • 打赏
  • 举报
回复
奇怪,为什么不用combobox来实现?那样更为方便吧?什么下拉效果和从数据库查出来的匹配项不都有地方显示了?
cyqlightrain 2008-12-12
  • 打赏
  • 举报
回复
呵呵,你有想法.
大部分见过的都是用Div模拟出来的效果!像google的search.
Visual Basic 6编程技术大全 是非常详细和深入的Vb6学习教程,无论对初学者还是有经验的开发人员,都非常有帮助 第一部分基础篇1 第1章 VB6入门1 1.1 集成开发环境1 1.1.1 运行IDE1 1.1.2 选择工程类型1 1.1.3 IDE窗口2 1.1.4 菜单5 1.1.5 工具栏6 1.1.6 Toolbox7 1.2 第一个VB应用程序9 1.2.1 向窗体添加代码9 1.2.2 设置控件的属性10 1.2.3 为控件命名12 1.2.4 移动及重新调整控件尺寸13 1.2.5 设置Tab顺序13 1.2.6 添加代码14 1.2.7 运行和调试程序15 1.2.8 优化示例程序16 1.2.9 准备、编译、运行18 第2章关于窗体20 2.1 通用属性20 2.1.1 Left、Top、Width和Height属性21 2.1.2 ForeColor和BackColor属性21 2.1.3 Font属性23 2.1.4 Caption和Text属性24 2.1.5 Parent和Container属性25 2.1.6 Enabled和Visible属性25 2.1.7 hWnd属性26 2.1.8 TabStop和Tablndex属性26 2.1.9 MousePointer和Mouselcon属性27 2.1.10Tag属性28 2.1.11其他属性28 2.2 通用方法29 2.2.1 Move方法29 2.2.2 Refresh方法30 2.2.3 SetFocus方法30 2.2.4 ZOrder方法31 2.3 通用事件31 2.3.1 Click和DblClick事件31 2.3.2 Change事件32 2.3.3 GotFocus和LostFocus事件33 2.3.4 KeyPress、KeyDown和KeyUp事件33 2.3.5 MouseDown、MouseUp和 MouseMove事件35 2.4 Form对象37 2.4.1基本的Form属性37 2.4.2微调窗体的性能38 2.4.3 Form的生存期39 2.4.4 Controls集合43 2.4.5 Screen对象44 2.4.6打印文本45 2.4.7图形方法48 2.4.8 DrawMode属性51 2.4.9 ScaleMode属性54 2.4.10调色板支持56 第3章内部控件58 3.1TextBox控件58 3.1.1 运行时属性59 3.1.2捕获键盘活动60 3.1.3数字的校验例程61 3.1.4 CausesValidation属性和Validate事件63 3.1.5自动跳格字段65 3.1.6格式化文本65 3.1.7多行TextBox控件69 3.2 Label和Frame控件70 3.2.1 Label控件70 3.2.2 Frame控件71 3.3 CommandButton、CheckBox和 OptionButton控件71 3.3.1 CommandButton控件72 3.3.2 CheckBox控件72 3.3.3 OptionButton控件73 3.3.4使用图形化控件73 3.4 ListBox和ComboBox控件74 3.4.1 ListBox控件74 3.4.2 ComboBox控件81 3.5 PictureBox和Image控件83 3.5.1 PictureBox控件83 3.5.2 Image控件86 3.6滚动条控件86 3.7 DriveListBox、DirListBox和FileListBox控件89 3.8其他控件91 3.8.1Timer控件91 3.8.2 Line控件92 3.8.3 Shape控件92 3.8.4 OLE控件92 3.9菜单93 3.9.1运行时访问菜单94 3.9.2弹出式菜单95 3.10控件数组96 3.11共享事件过程97 3.11.1运行时创建控件97 3.11.2迭代控件数组中的项目98 3.11.3菜单项数组98 第4章变量与过程100 4.1变量的作用域和生存期100 4.1.1全局变量100 4.1.2模块级的变量101 4.1.3动态局部变量102 4.1.4静态局部变量102 4.2内置数据类型概述103 4.2.1整型数据类型103 4.2.2长整型数据类型104 4.2.3布尔数据类型104 4.2.4字节数据类型104 4.2.5单精度数据类型104 4.2.6双精度数据类型105 4.2.7字符串数据类型105 4.2.8货币数据类型106 4.2.9日期数据类型106 4.2.10对象数据类型106 4.2.11变量数据类型107
Visual Basic 6编程技术大全 是非常详细和深入的Vb6学习教程,无论对初学者还是有经验的开发人员,都非常有帮助 第一部分基础篇1 第1章 VB6入门1 1.1 集成开发环境1 1.1.1 运行IDE1 1.1.2 选择工程类型1 1.1.3 IDE窗口2 1.1.4 菜单5 1.1.5 工具栏6 1.1.6 Toolbox7 1.2 第一个VB应用程序9 1.2.1 向窗体添加代码9 1.2.2 设置控件的属性10 1.2.3 为控件命名12 1.2.4 移动及重新调整控件尺寸13 1.2.5 设置Tab顺序13 1.2.6 添加代码14 1.2.7 运行和调试程序15 1.2.8 优化示例程序16 1.2.9 准备、编译、运行18 第2章关于窗体20 2.1 通用属性20 2.1.1 Left、Top、Width和Height属性21 2.1.2 ForeColor和BackColor属性21 2.1.3 Font属性23 2.1.4 Caption和Text属性24 2.1.5 Parent和Container属性25 2.1.6 Enabled和Visible属性25 2.1.7 hWnd属性26 2.1.8 TabStop和Tablndex属性26 2.1.9 MousePointer和Mouselcon属性27 2.1.10Tag属性28 2.1.11其他属性28 2.2 通用方法29 2.2.1 Move方法29 2.2.2 Refresh方法30 2.2.3 SetFocus方法30 2.2.4 ZOrder方法31 2.3 通用事件31 2.3.1 Click和DblClick事件31 2.3.2 Change事件32 2.3.3 GotFocus和LostFocus事件33 2.3.4 KeyPress、KeyDown和KeyUp事件33 2.3.5 MouseDown、MouseUp和 MouseMove事件35 2.4 Form对象37 2.4.1基本的Form属性37 2.4.2微调窗体的性能38 2.4.3 Form的生存期39 2.4.4 Controls集合43 2.4.5 Screen对象44 2.4.6打印文本45 2.4.7图形方法48 2.4.8 DrawMode属性51 2.4.9 ScaleMode属性54 2.4.10调色板支持56 第3章内部控件58 3.1TextBox控件58 3.1.1 运行时属性59 3.1.2捕获键盘活动60 3.1.3数字的校验例程61 3.1.4 CausesValidation属性和Validate事件63 3.1.5自动跳格字段65 3.1.6格式化文本65 3.1.7多行TextBox控件69 3.2 Label和Frame控件70 3.2.1 Label控件70 3.2.2 Frame控件71 3.3 CommandButton、CheckBox和 OptionButton控件71 3.3.1 CommandButton控件72 3.3.2 CheckBox控件72 3.3.3 OptionButton控件73 3.3.4使用图形化控件73 3.4 ListBox和ComboBox控件74 3.4.1 ListBox控件74 3.4.2 ComboBox控件81 3.5 PictureBox和Image控件83 3.5.1 PictureBox控件83 3.5.2 Image控件86 3.6滚动条控件86 3.7 DriveListBox、DirListBox和FileListBox控件89 3.8其他控件91 3.8.1Timer控件91 3.8.2 Line控件92 3.8.3 Shape控件92 3.8.4 OLE控件92 3.9菜单93 3.9.1运行时访问菜单94 3.9.2弹出式菜单95 3.10控件数组96 3.11共享事件过程97 3.11.1运行时创建控件97 3.11.2迭代控件数组中的项目98 3.11.3菜单项数组98 第4章变量与过程100 4.1变量的作用域和生存期100 4.1.1全局变量100 4.1.2模块级的变量101 4.1.3动态局部变量102 4.1.4静态局部变量102 4.2内置数据类型概述103 4.2.1整型数据类型103 4.2.2长整型数据类型104 4.2.3布尔数据类型104 4.2.4字节数据类型104 4.2.5单精度数据类型104 4.2.6双精度数据类型105 4.2.7字符串数据类型105 4.2.8货币数据类型106 4.2.9日期数据类型106 4.2.10对象数据类型106 4.2.11变量数据类型107

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧