<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jackfb2012的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jackfb2012</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jackfb2012]]></copyright><item><title><![CDATA[nvm的安装路径下找到settings.txt文件，如果没有，可以新建一个，其实这个文件可以理解为nvm的配置文件。打开settings.txt后，添加下面的2行代码,就设置成了国内的服务的源]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/142286629</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/142286629</guid><author>jackfb2012</author><pubDate>Sun, 15 Sep 2024 17:34:51 +0800</pubDate><description><![CDATA[在nvm的安装路径下找到settings.txt文件，如果没有，可以新建一个，其实这个文件可以理解为nvm的配置文件。有了这样的信息，我们很容易可以想到这是由于网络原因引起的问题，由于node源都是国外的服务，所以我们只需要将node和npm的源设置成国内的服务的源就可以了。添加这两行后，再通过nvm安装node就不会再报错了。windows上通过nvm管理。]]></description><category></category></item><item><title><![CDATA[WinForms中，`DataGridView`的`CellContentClick`事件和 `CellClick`事件]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/142109054</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/142109054</guid><author>jackfb2012</author><pubDate>Tue, 10 Sep 2024 20:56:15 +0800</pubDate><description><![CDATA[在这个修改后的代码中，我们将`dataGridView1_CellContentClick`事件替换为`dataGridView1_CellClick`事件，并在`InitializeDataGridView`方法中添加了对`CellClick`事件的订阅。这样，无论点击单元格的哪个部分，都会触发`dataGridView1_CellClick`事件，从而显示所在行的`plc.Name`。// 使用CellClick事件。Description = $"描述{i}"Name = $"名字{i}",]]></description><category></category></item><item><title><![CDATA[WPF的**逻辑树**和**可视树**。]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/142108965</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/142108965</guid><author>jackfb2012</author><pubDate>Tue, 10 Sep 2024 20:52:08 +0800</pubDate><description><![CDATA[在WPF中，你可以通过代码访问和操作逻辑树和可视树，类似于在前端中操作DOM。例如，你可以使用`VisualTreeHelper`类来遍历可视树，或者使用`LogicalTreeHelper`类来遍历逻辑树。- 可视树是逻辑树的一个扩展，它包含了所有可视元素的详细信息，包括控件的渲染和布局信息。在这个示例中，`TraverseLogicalTree`方法递归地遍历逻辑树，并输出每个元素的类型名称。在WPF中，这个概念被称为**逻辑树**和**可视树**。它类似于前端中的DOM树，表示页面的结构。]]></description><category></category></item><item><title><![CDATA[QT读取数据库中文显示乱码]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/141470138</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/141470138</guid><author>jackfb2012</author><pubDate>Fri, 23 Aug 2024 17:00:34 +0800</pubDate><description><![CDATA[使用ODBC连接数据库时，选择Character Set为gbk格式。]]></description><category></category></item><item><title><![CDATA[命令可以不通过数据绑定进行配置]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/140163095</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/140163095</guid><author>jackfb2012</author><pubDate>Wed, 03 Jul 2024 22:01:53 +0800</pubDate><description><![CDATA[2. **MainViewModel**：这是视图模型类，包含一个 `ClearTextCommand` 属性，该属性是一个 `RelayCommand` 实例。1. **RelayCommand**：这是一个简单的命令实现，实现了 `ICommand` 接口。4. **代码隐藏文件**：在代码隐藏文件中，我们创建了视图模型实例，获取了命令，并将命令附加到按钮上。3. **XAML**：在 XAML 中，我们没有使用数据绑定，而是直接在代码隐藏文件中处理命令。在代码隐藏文件中，我们将命令直接附加到按钮上。]]></description><category></category></item><item><title><![CDATA[有框架和没框架的Command]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/140081198</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/140081198</guid><author>jackfb2012</author><pubDate>Sun, 30 Jun 2024 15:05:41 +0800</pubDate><description><![CDATA[第一段代码中，`RelayCommand` 是自定义实现的，而第二段代码中，`RelayCommand` 是使用 `GalaSoft.MvvmLight.Command` 库中的实现。- 第一段代码中，`RelayCommand` 是自定义实现的，而第二段代码中，`RelayCommand` 是使用 `GalaSoft.MvvmLight.Command` 库中的实现。因此，这两段代码在功能上是等效的，只是 `RelayCommand` 的实现方式不同。]]></description><category></category></item><item><title><![CDATA[局部 `DataContext`]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/140064743</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/140064743</guid><author>jackfb2012</author><pubDate>Sat, 29 Jun 2024 15:11:29 +0800</pubDate><description><![CDATA[为了确保的新 ViewModel 不会影响现有绑定到 `MainViewModel` 的其他属性，可以使用 `MonitorPage` 作为 `UserControl` 的局部 `DataContext`，而不覆盖整个 `UserControl` 的 `DataContext`。1. **不要在整个 `UserControl` 设置 `DataContext`**，而是在需要显示时间的 `TextBlock` 上设置局部 `DataContext`。-- 在这里设置局部 DataContext -->]]></description><category></category></item><item><title><![CDATA[容忍操作符 ! 和 条件操作符 ?]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/140032702</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/140032702</guid><author>jackfb2012</author><pubDate>Fri, 28 Jun 2024 08:55:52 +0800</pubDate><description><![CDATA[并不等效，它们在行为上有重要的区别。时不会抛出异常，而是简单地不执行。不会做任何事情，也不会抛出异常。这个操作符告诉编译器，你确信。，并且在这种情况下不会执行。的主要区别在于它们处理。时，你告诉编译器你确信。方法，也不会抛出异常。方法，也不会抛出异常。则会导致运行时异常。]]></description><category></category></item><item><title><![CDATA[使用和不使用框架依赖注入的注入方式]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/140009718</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/140009718</guid><author>jackfb2012</author><pubDate>Thu, 27 Jun 2024 11:51:48 +0800</pubDate><description><![CDATA[下面将为展示四个完整的控制台例子，分别展示如何在使用依赖注入框架和不使用依赖注入框架的情况下，进行属性注入和方法注入。Console.WriteLine("订单已完成，状态已更新");Console.WriteLine("订单已完成，状态已更新");Console.WriteLine("订单已完成，状态已更新");Console.WriteLine("订单已完成，状态已更新");这四个例子分别展示了在使用和不使用依赖注入框架的情况下，进行属性注入和方法注入的方法。]]></description><category></category></item><item><title><![CDATA[为什么你这个类型没写过.Sum()可是你可以用?]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/139991256</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/139991256</guid><author>jackfb2012</author><pubDate>Wed, 26 Jun 2024 15:48:51 +0800</pubDate><description><![CDATA[虽然你自定义的类型没有直接定义`Sum`方法，但通过LINQ扩展方法，你可以轻松地对集合进行操作。即使`Product`类型本身没有定义`Sum`方法，但由于我们使用了LINQ扩展方法并提供了一个选择器函数`p => p.Price`，我们依然可以对其进行求和操作。1. 我们定义了一个名为`Product`的自定义类型，其中包含`Name`和`Price`属性。3. 使用LINQ的`Sum`方法计算产品列表中所有产品价格的总和。2. 然后，我们创建了一个包含几个`Product`对象的列表。]]></description><category></category></item><item><title><![CDATA[if(a is B{ bb : a})又是什么?]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/139982903</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/139982903</guid><author>jackfb2012</author><pubDate>Wed, 26 Jun 2024 10:42:53 +0800</pubDate><description><![CDATA[if (a is B { bb: a })` 的意思是检查对象 `a` 是否是类型 `B`，并且如果是，将其属性 `bb` 的值赋给变量 `a`。- 使用模式匹配检查 `obj` 是否是类型 `A`，如果是，则提取其 `aa` 属性值并赋给变量 `aaValue`。- 使用模式匹配检查 `obj` 是否是类型 `B`，如果是，则提取其 `bb` 属性值并赋给变量 `bbValue`。- 创建两个对象 `obj1` 和 `obj2`，分别为类型 `A` 和 `B` 的实例。### 示例运行结果。]]></description><category></category></item><item><title><![CDATA[这个a?.XX()是什么?]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/139982577</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/139982577</guid><author>jackfb2012</author><pubDate>Wed, 26 Jun 2024 10:36:11 +0800</pubDate><description><![CDATA[如果对象为 `null`，则整个表达式的结果为 `null` 或 `default`，并且不会引发 `NullReferenceException`。如果 `person` 为 `null`，则 `name` 也为 `null`。- 将 `person` 赋值为一个新的 `Person` 对象，并再次使用空条件运算符访问 `Name` 属性和调用 `DisplayGreeting` 方法。- 定义一个 `Person` 类型的变量 `person` 并将其初始化为 `null`。### 示例运行结果。]]></description><category></category></item><item><title><![CDATA[Exception 带个when怎么回事?]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/139982303</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/139982303</guid><author>jackfb2012</author><pubDate>Wed, 26 Jun 2024 10:29:46 +0800</pubDate><description><![CDATA[异常过滤器 (`when` 子句) 在性能上可能稍微优于传统的 `if` 检查，因为 `when` 子句在异常发生时会立即进行过滤，而不会进入 `catch` 块。- 第二个代码片段稍微冗长一些，因为它在 `catch` 块内部使用了 `if` 语句来检查条件，并在不满足条件时重新抛出异常。- 第二个代码片段的可读性稍差，因为它在 `catch` 块内部使用了 `if` 语句，并且需要重新抛出异常。- 第一个代码片段更简洁，因为它直接在 `catch` 语句中使用了 `when` 子句来过滤异常。]]></description><category></category></item><item><title><![CDATA[关于表达式形式switch的例子]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/139981837</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/139981837</guid><author>jackfb2012</author><pubDate>Wed, 26 Jun 2024 10:18:31 +0800</pubDate><description><![CDATA[`static string GetDayType(DayOfWeek day) => day switch {...}`: 定义一个方法 `GetDayType`，它使用 `switch` 表达式来根据输入的 `day` 值返回一个字符串。- `static string GetSeason(int month) => month switch {...}`: 定义一个方法 `GetSeason`，它使用 `switch` 表达式来根据输入的 `month` 值返回一个字符串。]]></description><category></category></item><item><title><![CDATA[一些使用 `DataSet` 的示例方法]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/139930664</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/139930664</guid><author>jackfb2012</author><pubDate>Mon, 24 Jun 2024 16:42:45 +0800</pubDate><description><![CDATA[在现有代码的基础上，您可以添加一些使用 `DataSet` 的方法，作为 `LocalDataAccess` 类的 helper 方法。- 这个方法演示了如何使用 `DataSet` 和 `DataAdapter` 更新数据库的数据。该方法使用 `SQLiteCommandBuilder` 自动生成 `INSERT`、`UPDATE` 和 `DELETE` 命令，并将 `DataSet` 中的更改提交到数据库。每个表的数据保存在 `DataSet` 的不同 `DataTable` 中。]]></description><category></category></item><item><title><![CDATA[win10 只需简单设置，轻松访问其他电脑共享文件！]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/139896741</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/139896741</guid><author>jackfb2012</author><pubDate>Sun, 23 Jun 2024 10:29:31 +0800</pubDate><description><![CDATA[只需简单设置，轻松访问他人电脑共享文件！_哔哩哔哩_bilibili]]></description><category></category></item><item><title><![CDATA[一个简单的依赖注入容器的 优化版本]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/139866966</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/139866966</guid><author>jackfb2012</author><pubDate>Fri, 21 Jun 2024 17:45:49 +0800</pubDate><description><![CDATA[通过上述优化，我们提高了代码的类型安全性和灵活性，并且实现了单例的生命周期管理。同时，构造函数注入的方式使得代码更容易测试和维护。如果有更多复杂的需求，可以考虑引入生命周期管理、属性注入等高级功能，但这些优化已经展示了手动实现依赖注入的一些核心理念和最佳实践。]]></description><category></category></item><item><title><![CDATA[一个手动实现依赖注入的示例，包括了配置依赖关系和注入属性。]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/139844567</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/139844567</guid><author>jackfb2012</author><pubDate>Thu, 20 Jun 2024 23:02:58 +0800</pubDate><description><![CDATA[通过以上步骤，我们手动实现了一个简单的依赖注入容器，并使用它来注入 `MainViewModel` 和 `Command`。虽然这种方式比使用现成的 DI 框架更繁琐，但它展示了依赖注入的基本原理，并且不依赖外部库。如果不用现成的依赖注入框架和包，你可以手动实现依赖注入。以下是一个手动实现依赖注入的示例，包括了配置依赖关系和注入属性。首先，你需要一个简单的依赖注入容器来管理服务的创建和生命周期。### 4. 确保 `Command` 类实现了 `ICommand` 接口。### 1. 手动配置依赖关系。]]></description><category></category></item><item><title><![CDATA[AAA系统]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/8187431</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/8187431</guid><author>jackfb2012</author><pubDate>Thu, 15 Nov 2012 16:22:36 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/zhoujunyi/article/details/2045208



AAA系统的简称：

认证(Authentication)：验证用户的身份与可使用的网络服务；
授权(Authorization)：依据认证结果开放网络服务给用户；
计帐(Accounting)：记录用户对各种网络服务的用量，并提供给计费系统。

AAA-----]]></description><category></category></item><item><title><![CDATA[程序中通过wap联网方式访问网络]]></title><link>https://blog.youkuaiyun.com/jackfb2012/article/details/8186820</link><guid>https://blog.youkuaiyun.com/jackfb2012/article/details/8186820</guid><author>jackfb2012</author><pubDate>Thu, 15 Nov 2012 14:33:43 +0800</pubDate><description><![CDATA[http://bbs.youkuaiyun.com/topics/360145225








用户的联网方式大致有 wap net wifi 三种. 使用android包中提供的函数,HttpConnection只能使用net和wifi,wap方式无法访问. 

问? 如何让程序可以通过wap访问网络?






对我有用[0] 丢个板砖[0] 引用 | 举报 |]]></description><category></category></item></channel></rss>