c# - 如何将实例化对象从一种方法使用到另一种方法?
问题描述
我有这两种方法:
public MessagesPage(ContactModel input)
{
InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false);
ConversationsList = new ObservableCollection<ConversationModel>();
ContactModel ConversationPartner = new ContactModel();
ConversationPartner = input;
...
}
而输入是上面方法中的参数,我也想在这个方法中使用它(它们在同一个类中)
private async void Send()
{
Guid guid = Guid.NewGuid();
string ID = guid.ToString();
ConversationModel conversationObject = new ConversationModel()
{
id = ID,
converseeID = dataClass.loggedInUser.uid,
message = Message,
created_at = DateTime.UtcNow
};
await CrossCloudFirestore.Current
.Instance
.GetCollection("contacts")
.GetDocument(ConversationPartner.id)
.GetCollection("conversations")
.GetDocument(ID)
.SetDataAsync(conversationObject);
Message = string.Empty;
}
因为如您所见,在.GetDocument 中,它需要ConversationPartner 的ID。当调用 Send() 方法时,我会得到对象引用未设置为对象的实例,因为它无权访问上面 MessagesPage 中的 ContactModel 输入。
解决方案
您需要声明ConversationPartner
为类级别变量,而不是在特定方法中。这将使它在您的课堂上可用
ContactModel ConversationPartner;
public MessagesPage(ContactModel input)
{
InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false);
ConversationsList = new ObservableCollection<ConversationModel>();
ConversationPartner = input;
...
}
推荐阅读
- coordinates - 如何使用 2 个点集制作边框网格,每个点集都有自己的长度
- image - 在 FastAPI 发布请求中上传图像会导致 400 Bad Request
- keras - Julia 的 Flux 中的 Keras W_constraint 和 W_regularizer 类似物
- php - Wordpress 目录中的 .htaccess 冲突
- ios - 在 iOS 中,当应用程序处于后台或终止状态时,不会向用户显示 CallKit
- maven - 清理和安装项目时maven依赖检查失败
- javascript - 如何对具有许多依赖项的不纯函数进行单元测试?
- ios - "预期解码字典
但找到了一个数组。”,基础错误:无 - algorithm - 为什么具有 2 个队列和排序输入的霍夫曼代码算法是 O(n)
- php - php zip提取使文件为空