[Windows Store App 開發筆記] 在C#中的全域變數─利用靜態static宣告
前言
http://social.msdn.microsoft.com/Forums/zh-TW/3c789d46-42a5-4645-96c4-873ac9aa4ee8
最近在開發app,遇到要在頁面中傳遞參數的種種問題,就想到說能否利用全域變數,實現讓整個專案去共用的某個變數,就找到了以上的網站。
利用static宣告靜態成員,靜態成員不需要用new建立物件就能直接使用,只要透過類別名稱加上「‧」直接呼叫public靜態成員即可。
以下是一個簡單的範例程式,我們可以看到不管在MainPage或是Page2中,都能夠自由使用staticDemo類別下的靜態成員str。
實作
1. MainPage.xaml
1: <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
2: <Button x:Name="NextBtn" Content="下一頁" HorizontalAlignment="Left" Margin="72,84,0,0" VerticalAlignment="Top" Height="78" Width="178" FontSize="24" Click="NextBtn_Click"/>
3: <TextBlock x:Name="Show" HorizontalAlignment="Left" Margin="75,210,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="50" Width="240" FontSize="36"/>
4: </Grid>
2. MainPage.xaml.cs
1: public class staticDemo
2: {
3: public static string str = "I am static";
4: }
5: public sealed partial class MainPage : Page
6: {
7: public MainPage()
8: {
9: this.InitializeComponent();
10: Show.Text = staticDemo.str;
11: }
12:
13: private void NextBtn_Click(object sender, RoutedEventArgs e)
14: {
15: this.Frame.Navigate(typeof(Page2));
16: }
17:
18: }
3. Page2.xaml
1: <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
2: <Button Content="上一頁" HorizontalAlignment="Left" Margin="294,118,0,0" VerticalAlignment="Top" Height="80" Width="176" FontSize="24" Click="Button_Click"/>
3: <TextBlock x:Name="Show" HorizontalAlignment="Left" Margin="297,249,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="50" Width="240" FontSize="36"/>
4: </Grid>
4. Page2.xaml.cs
1: public sealed partial class Page2 : Page
2: {
3: public Page2()
4: {
5: this.InitializeComponent();
6: Show.Text = staticDemo.str;
7: }
8:
9: private void Button_Click(object sender, RoutedEventArgs e)
10: {
11: this.Frame.GoBack();
12: }
13: }
執行結果:
結論:雖然說全域變數很強大,但變數一多很容易混亂產生錯誤,程式的效能也會不佳,所以只要偶爾使用就好,對於解決一些小問題是相當方便的。