C# Solution
Solution is C# version of this \n\npublic class Solution \n{\n    static long INF = (long) 1e10;\n    \n    public long KthSmallestProduct(int[] nums1, int[] nu
Solution is C# version of [this ](https://leetcode.com/problems/kth-smallest-product-of-two-sorted-arrays/discuss/1524349/Java-Double-Binary-Search-O(log1010-x-MlogN))\n```\npublic class Solution \n{\n    static long INF = (long) 1e10;\n    \n    public long KthSmallestProduct(int[] nums1, int[] nums2, long k) \n    {\n        int m = nums1.Length, n = nums2.Length;\n\t\tlong lo = -INF - 1, hi = INF + 1;\n        \n\t\twhile (lo < hi)\n\t\t{\n\t\t\tlong mid = lo + ((hi - lo) >> 1), cnt = 0;\n\t\t\t\n            foreach (int i in nums1)\n\t\t\t{\n\t\t\t\tif (0 <= i)\n\t\t\t\t{\n\t\t\t\t\tint l = 0, r = n - 1, p = 0;\n\t\t\t\t\twhile (l <= r)\n\t\t\t\t\t{\n\t\t\t\t\t\tint c = l + ((r - l) >> 1);\n\t\t\t\t\t\tlong mul = i * (long)nums2[c];\n\t\t\t\t\t\tif (mul <= mid)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tp = c + 1;\n\t\t\t\t\t\t\tl = c + 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tr = c - 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcnt += p;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tint l = 0, r = n - 1, p = 0;\n\t\t\t\t\twhile (l <= r)\n\t\t\t\t\t{\n\t\t\t\t\t\tint c = l + ((r - l) >> 1);\n\t\t\t\t\t\tlong mul = i * (long)nums2[c];\n\t\t\t\t\t\tif (mul <= mid)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tp = n - c;\n\t\t\t\t\t\t\tr = c - 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tl = c + 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcnt += p;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cnt >= k)\n\t\t\t{\n\t\t\t\thi = mid;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tlo = mid + 1L;\n\t\t\t}\n\t\t}\n\t\treturn lo;\n        \n    }\n}\n```
[]