C#笔记-005

1、我们在使用while循环或者do-while循环的时候,

经常会忘记给循环变量自增,为了解决这个问题,我们有了更为简单的一种循环,
叫做for循环,for循环专门处理已知循环次数的循环。

for(表达式1;表达式2;表达式3)
{
循环体;
}
表达式1:一般为声明一个循环变量,用来记录循环的次数
表达式2:一般为循环条件
表达式3:一般为能够改变循环条件的代码
执行过程:在第一次循环的时候,首先执行表达式1,再执行表达式2,然后跳过表达式3.直接执行循环体,
执行完循环体之后,执行表达式3,执行表达式2,循环体,表达式3,表达式2,循环体。。。。。
知道表达式2不成立之后,跳出for循环。

2、break只能够跳出当前循环,而不能跳出所有循环。

3、int.TryParse();

尝试着将一个字符串转换成int类型,如果转换成功的话,返回一个true,并且将转换成功后的值
赋值给一个int类型的参数,如果转换失败的话,返回一个false,并且给这个int类型的参数赋值为0

4、continue

在循环中,如果遇到break,则跳出当前循环。
如果遇到continue,则立即停止本次循环,回到循环条件进行判断,如果循环条件成立,则继续执行循环。
如果不成立,则跳出循环。
单独把continue放到循环中没有意义,一般也跟着if语句配合着使用。

5、三元表达式

表达式1?表达式2:表达式3;
表达式1一般为一个关系表达式,如果关系表达式1的结果为true,那么表达式2的值就是整个三元表达式的值,
否则,表达式3就是整个三元表达式的值。

要求:表达式2和表达式3的结果类型必须一致,并且也要和整个三元表达式的结果类型一致。

6、常量

语法:
const 常量类型 常量名称=值;

7、枚举

语法:
[public] enum 枚举名
{
值1,
值2,
值3,

}
public:访问修饰符。访问的权限,公开的,公共的,谁都能访问。
enum:表示声明枚举的关键字
枚举名:必须要Pascal命名规范。每个单词的首字母都要大写。

枚举类型和int类型互相兼容,所以两种类型可以通过强制类型转换的语法互相转换。
枚举类型的值默认是从0开始的。

不管是将字符串类型的数字转换成枚举类型还是将int类型转换成枚举类型,结果都不会抛异常。
但是,如果要转换的字符串,在枚举中,并没有所对应的值,这个时候会抛异常。

8、结构:一次性声明多个不同类型的变量

语法:
[public] struct 结构名
{
结构成员;
}
字段跟变量有一个本质的区别:字段可以存储多个值,而变量只能存储一个值。

9、数组

数组类型[] 数组名=new 数组类型[数组长度];
注意:数组的长度一旦声明了,就不能再被改变了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在WPF中,我们可以使用控件的属性来实现文本框和密码框的水印效果(也称为背景文字提示)。下面是实现该效果的一些方法: 方法一:使用控件的Placeholder属性 WPF的文本框和密码框控件都有一个名为Placeholder的属性,该属性可以用来显示文本框或密码框中的默认提示文本。当用户在文本框或密码框中输入内容后,该提示文本就会自动隐藏。 例如,以下代码演示了在WPF中如何使用Placeholder属性来实现文本框的水印效果: ```xml <TextBox Placeholder="请输入文本"></TextBox> ``` 同样地,我们可以在密码框中使用Placeholder属性来实现密码框的水印效果: ```xml <PasswordBox Placeholder="请输入密码"></PasswordBox> ``` 方法二:使用控件的Adorner WPF中的Adorner是一种用于在控件上添加装饰元素的机制。我们可以使用Adorner来实现文本框和密码框的水印效果。 以下是实现该效果的一般步骤: 1.定义一个自定义控件,例如WatermarkTextBox。 2.在WatermarkTextBox中定义一个名为Watermark的依赖属性。该属性表示水印提示文本。 3.重写WatermarkTextBox的OnRender方法,使其在控件上绘制水印提示文本。 4.在WatermarkTextBox的TextChanged事件中判断文本框中是否有内容,如果有则隐藏水印提示文本,否则显示水印提示文本。 以下是WatermarkTextBox的示例代码: ```csharp public class WatermarkTextBox : TextBox { public static readonly DependencyProperty WatermarkProperty = DependencyProperty.Register( "Watermark", typeof(string), typeof(WatermarkTextBox), new PropertyMetadata(default(string))); public string Watermark { get { return (string)GetValue(WatermarkProperty); } set { SetValue(WatermarkProperty, value); } } protected override void OnRender(DrawingContext drawingContext) { base.OnRender(drawingContext); if (string.IsNullOrEmpty(Text) && !string.IsNullOrEmpty(Watermark)) { var formattedText = new FormattedText( Watermark, CultureInfo.CurrentCulture, FlowDirection.LeftToRight, new Typeface(FontFamily, FontStyle, FontWeight, FontStretch), FontSize, Foreground); drawingContext.DrawText(formattedText, new Point(2, 2)); } } protected override void OnTextChanged(TextChangedEventArgs e) { base.OnTextChanged(e); if (string.IsNullOrEmpty(Text) && !string.IsNullOrEmpty(Watermark)) { InvalidateVisual(); } } } ``` 使用WatermarkTextBox时,只需要在XAML中设置Watermark属性即可: ```xml <local:WatermarkTextBox Watermark="请输入文本"></local:WatermarkTextBox> ``` 同样地,我们也可以定义一个WatermarkPasswordBox类来实现密码框的水印效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值