初学C#记录历程,记录心情。
节点类和链表类参考前篇。
在接口IList中增加:
void CreateListHead(int length); //创建单链表,在头部插入结点
在LinkList类中创建方法:
2 /// 创建单链表
3 /// </summary>
4 /// <param name="length">单链表长度</param>
5 public void CreateListHead(int length)
6 {
7 if (length <= 0)
8 {
9 Console.WriteLine("Error! the length of list is incorrect.please run again");
10 return;
11 }
12 else
13 {
14 Console.WriteLine("Please input the node data of the list:");
15 for (int i = length; i > 0; i--)
16 {
17 T item = default(T); //定义新结点数据域
18 item = (T)Convert.ChangeType(Console.ReadLine(), typeof(T)); //从键盘输入的字符串转换成T。当不知道当前类型要转换成什么类型的情况下,用Convert.ChangeType(value,typeof(type))
19 LinkNode<T> NewNode = new LinkNode<T>(item);//new一个新结点
20 NewNode.Next = this.Head;
21 this.Head = NewNode;
22 //NewNode.Data = item;
23 }
24 }
25 }
验证创建是否正确:
2 static LinkNode<int> node;
3
4 private static LinkNode<int> PrintData(LinkNode<int> node)
5 {
6 node = MyList.Head;
7 while (node != null)
8 {
9 Console.WriteLine("The data of List are:{0}", node.Data);
10 node = node.Next;
11 }
12 return node;
13 }
14
15 static void Main(string[] args)
16 {
17
18 Console.Write("Pleae input the lenght of your ListLink,n= ");
19 string str = Console.ReadLine();
20 int n;
21 n= Convert.ToInt32(str);
22 MyList.CreateListHead(n);
23
24 if (MyList.Head == null)
25 {
26 Console.WriteLine("List is empty");
27 }
28 else
29 {
30 Console.WriteLine("After created:");
31 node = PrintData(node);
32 }
33 Console.WriteLine(
做项目的时候遇见了这个问题,在网上查找了一些资料之后解决了这个问题,我把我的代码贴出来分享一下。
先说我的要求:主窗口上有五个TextBlock控件和两个Button按钮(Get和Set),单击Get按钮之后弹出一个对话框,显示出所有TextBlock控件的Name值;单击Set按钮之后,将所有的TextBlock的背景色设为红色。
这是主窗体的代码(控件是手动拖的,所有属性值有点乱):
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:
x:Name="Window"
Title="MainWindow"
Width="600" Height="400" xmlns:my="clr-namespace:ExplodeProgram">
<Grid x:Name="LayoutRoot">
<TextBlock Name="hello" Margin="78,77,98,196" TextWrapping="Wrap" Foreground="#FFFB240F" FontSize="64">
<Run Language="zh-cn" Text="Hello World!"/></TextBlock>
<TextBlock Height="23" HorizontalAlignment="Left" Margin="30,179,0,0" Name="textBlock1"
Text="TextBlock1" VerticalAlignment="Top" Width="100" />
<TextBlock Height="23" HorizontalAlignment="Left" Margin="136,179,0,0" Name="textBlock2"
Text="TextBlock2" VerticalAlignment="Top" Width="100" />
<TextBlock Height="23" HorizontalAlignment="Left" Margin="291,179,0,0" Name="textBlock3"
Text="TextBlock3" VerticalAlignment="Top" Width="100" />
<TextBlock Height="23" HorizontalAlignment="Left" Margin="420,179,0,0" Name="textBlock4"
Text="TextBlock4" VerticalAlignment="Top" Width="100" />
<Button x:Name="get" Content="Get" Margin="102,0,411,45" VerticalAlignment="Bottom" Height="25" Width="65" Click="get_Click" />
<Button x:Name="set" Content="Set" Width="65" Height="25" Click="set_Click" Margin="185,291,328,45" />
</Grid>
</Window>
这是后台单击事件的代码:
{
foreach (UIElement element in LayoutRoot.Children)
{
if (element is TextBlock)
{
TextBlock current = ((TextBlock)element);
//设置背景
current.Background = Brushes.Red;
}
}
}
private void get_Click(object sender, RoutedEventArgs e)
{
string str = "";
foreach (UIElement element in LayoutRoot.Children)
{
if (element is TextBlock)
{
TextBlock current = ((TextBlock)element);
str += current.Name + "\r\n";
第一篇 就先转别人的博客 加上 msdn的资料 合起来一起 效果比较好
SP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。 这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。 了解页生命周期非常重要,因为这样做您就能在生命周期的合适阶段编写代码,以达到预期效果。
如果您要开发自定义控件,就必须熟悉页生命周期,以便正确进行控件初始化,使用视图状态数据填充控件属性以及运行控件行为代码。 控件的生命周期基于页的生命周期,但是页引发许多您需要在自定义控件中处理的事件。
本主题包含以下各节:
常规页生命周期阶段
生命周期事件
其他的页生命周期注意事项
添加的控件的追赶事件
数据绑定控件的数据绑定事件
登录控件事件
一般来说,页要经历下表概述的各个阶段。除了页生命周期阶段以外,在请求前后还存在应用程序阶段,但是这些阶段并不特定于页。有关更多信息,请参见 Introduction to the ASP.NET Application Life Cycle and IIS 7.0 的 ASP.NET 应用程序生命周期概述(ASP.NET 应用程序生命周期简介)。
生命周期的某些部分仅当页处理为回发时才出现。对于回发,部分页回发过程中(当您使用 UpdatePanel 控件)与整页回发过程中的页生命周期是一样。
阶段
说明