C# 構造函數依賴注入 使用out向外傳遞參數

  • 天真
  • 目前解決方法

天真

using System;namespace forCode20191 {class Program {static void Main(string[] args) {bool flag = false;Tmp tt = new Tmp(out flag);Console.WriteLine(flag); // 將輸出 falsett.Doit();Console.WriteLine(flag); // 將輸出 trueConsole.ReadKey();}}class Tmp {public bool Flag { get; private set; } // 將flag作為公共屬性,只能通過類內部setpublic Tmp(out bool flag) {Flag = false; // 初始化成員變量flag = Flag; // 將成員變量的值賦給out參數}public void Doit() {Flag = true; // 修改成員變量的值}}
}

目前解決方法

C#中,out參數是在方法調用時才創建的,它的作用域僅限于方法調用的上下文。這意味著,一旦構造函數Tmp執行完畢,out參數flag就不再存在了。因此,您不能在Tmp類的其他方法中訪問這個flag變量。

在構造函數中,您可以將flag設置為某個值,但是一旦構造函數執行完畢,您就無法再修改這個flag了。如果您希望在類的其他方法中修改這個標志,您需要將這個標志作為類的成員變量。

下面是修改后的代碼,其中flagTmp類的成員變量,可以在類的任何方法中訪問和修改:

using System;namespace forCode20191 {class Program {static void Main(string[] args) {Tmp tt = new Tmp();Console.WriteLine(tt.Flag); // 輸出 false,因為Flag在構造時被設置為falsett.Doit();Console.WriteLine(tt.Flag); // 輸出 true,因為Doit方法將Flag設置為trueConsole.ReadKey();}}class Tmp {public bool Flag { get; private set; } // 將flag作為只讀公共屬性public Tmp() {Flag = false; // 初始化Flag為false}public void Doit() {Flag = true; // 在Doit方法中將Flag設置為true}}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42461.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42461.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42461.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

“DDoS攻擊的最新防御策略:從檢測到緩解的全方位方案“

DDoS攻擊的最新防御策略 DDoS攻擊(分布式拒絕服務攻擊)是網絡安全領域的重大威脅,它通過大量的惡意流量淹沒目標服務器或網絡,導致服務不可用。為了有效防御DDoS攻擊,最新的策略強調從檢測到緩解的全方位方案。 多層防…

深度學習的數學PDF

鏈接: https://pan.baidu.com/s/1_jScZ7dcyAWGqbrad6bbCQ?pwd9gj9 提取碼: 9gj9 復制這段內容后打開百度網盤手機App,操作更方便哦

【蒼穹外賣】Day2 手把手敲完細節

目錄 1. 新增員工 1.1 需求分析和設計 1.2 代碼開發 ①定義DTO類:(在sky-pojo里) ②EmployeeController中創建新增員工方法save() ③EmployeeService里聲明save方法(altenter) ④EmployeeServiceImpl中實現save方法 ⑤在E…

頂刊文獻閱讀及代碼復現

前提:每個無人機都有 (i)自己的機載計算機,用于執行控制其自身動作所需的計算 (ii)自己的傳感器系統,用于測量相對位置和速度, (iii)自己的通信設備,用于與相鄰代理進行數據交換。 模型:短期的排斥力、中間范圍的速度一致性和長距離的吸引力

通過PLC地址來切換威綸通觸摸屏界面

Step 1 元件-PLC控制 Step 2 新增 選擇設備 選擇切換基本窗口功能 選擇觸發地址 Step 3 離線仿真測試 在數值框中輸入對應的頁面號 可以看到頁面可以正常切換 分享創作不易,請多多支持,點贊、收藏、關注! Ending~

昇思Mindspore25天學習打卡Day20:DCGAN生成漫畫頭像

昇思Mindspore25天學習打卡Day20:DCGAN生成漫畫頭像 1 GAN基礎原理2 DCGAN原理3 數據準備與處理數據處理 4 構造網絡4.1 生成器4.2 判別器 5 模型訓練損失函數優化器訓練模型 6 結果展示7 訓練結束打上標簽和時間 在下面的教程中,我們將通過示例代碼說明…

為什么裁員先裁技術人員?網友給答復

網友1:技術崗本身就是項目制的,項目完成,后續項目運營的收益與技術無關。之前是項目多,所以收益持續走高,現在都在減項目,自然先減技術崗。 網友2:房子蓋起來了,還需要農民工么? …

基于STM主題模型的主題提取分析-完整代碼數據

直接看結果: 代碼: import re from collections import defaultdict import random import matplotlib.pyplot as plt import numpy as npimport pandas as pd import numpy as np import re from sklearn.feature_extraction.text import CountVectorizer from nltk.corpus…

在Morelogin中使用IPXProxy海外代理IP的設置指南

Morelogin指紋瀏覽器是市場上較受歡迎的指紋瀏覽器,允許用戶管理多個賬號并進行自動化操作。它提供免費環境供用戶進行體驗,并且操作起來非常簡單。大多數人都會將Morelogin指紋瀏覽器和海外代理IP進行使用,來應用于多種場景,如電…

用ce修改植物大戰僵尸雜交版銀幣

第一步打開游戲 用ce打開圖中進程 第二步 輸入你原始銀幣 點首次搜索 第三步 找到這個地址 把地址拖下來 第四步 雙擊直接修改下面數值即可 金幣 鉆石 都和這個方法一樣 不一樣的是首次搜索可能會有很多地址 我們改變游戲里面的值 然后再次搜索游戲被改變的值即可準確找到地址

MySQL中字段的實際長度

在MySQL中,字段的實際長度(即存儲數據的實際字節數)可能因數據類型和存儲的具體內容而異。對于字符類型(如CHAR, VARCHAR, TEXT等)字段,實際長度取決于存儲的字符串長度以及字符集的編碼方式(如…

新加坡工作和生活指北:租房篇

本文首發于公眾號 Keegan小鋼 前段時間已經分享了工作篇,現在接著聊聊生活篇。因為生活這塊涉及到多個方面,內容比較多,所以我再細分了一下,本篇先聊聊租房。 先來看看新加坡的地區分布圖,如下: 上圖將新加…

使用Python繪制累積直方圖并分析數據

使用Python繪制累積直方圖并分析數據 在這篇博客中,我們將探討如何使用Python中的pandas庫和matplotlib庫來繪制累積直方圖,并分析數據文件中的內容。累積直方圖是一種常用的圖表類型,用于展示數據的累積分布情況。 數據: 鏈接…

(C++鏈表01) 移除鏈表元素

203、移除鏈表元素 不帶頭節點 class Solution { public:ListNode* removeElements(ListNode* head, int val) {while(head ! NULL && head->val val) {ListNode* tem head;head head->next;delete tem;}ListNode* cur head;while(cur ! NULL && c…

LDA算法進行相似性分析

import gensim from gensim import corpora from gensim.models import LdaModel from gensim.matutils import cossim import nltk from nltk.corpus import stopwords from nltk.tokenize import word_tokenize import string# 如果您尚未下載nltk的停用詞列表,請…

使用sklearn的基本流程

scikit-learn,通常簡稱為 sklearn,是一個開源的Python庫,是基于 Python 編程語言的一個非常流行的機器學習庫。它建立在 NumPy 和 SciPy 這兩個科學計算庫之上,并與 Matplotlib 配合使用,為數據預處理、模型訓練、評估…

Atom編輯器插件Minimap使用樣例

Atom編輯器插件Minimap是一個強大的工具,它為開發者提供了快速、直觀的代碼預覽功能。以下是Minimap的使用樣例和一些關鍵特性的介紹: 1. 安裝Minimap 首先,你需要在Atom編輯器中安裝Minimap插件。這通常可以通過Atom的插件市場&#xff08…

vue緩存頁面,當tab切換時保留原有的查詢條件

需求: 切換tab時,查詢條件不變 路由頁面: 單個頁面上加這句話:

bert-base-chinese模型離線使用案例

import torch import torch.nn as nn from transformers import BertModel, BertTokenizer# 通過torch.hub(pytorch中專注于遷移學的工具)獲得已經訓練好的bert-base-chinese模型 # model torch.hub.load(huggingface/pytorch-transformers, model, bert-base-chinese) model…

超過35歲的網工,你該何去何從?

在網絡工程師這個職業中,35歲往往被視為一個重要的門檻,這個年齡段的工程師,既擁有豐富的經驗和技能,也面臨著職業發展的諸多挑戰。 隨著技術的飛速發展和年輕一代的不斷涌入,不少35歲以上的網工都在迷茫的路口&#x…